<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/book.mysqlnd.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'mysqlnd.stats.php',
    1 => 'Statistiken',
    2 => 'Statistiken',
  ),
  'up' => 
  array (
    0 => 'book.mysqlnd.php',
    1 => 'Mysqlnd',
  ),
  'prev' => 
  array (
    0 => 'mysqlnd.persist.php',
    1 => 'Persistente (dauerhafte) Verbindungen',
  ),
  'next' => 
  array (
    0 => 'mysqlnd.notes.php',
    1 => 'Hinweise',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'reference/mysqlnd/stats.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="mysqlnd.stats" class="chapter">
 <h1 class="title">Statistiken</h1>


 <p class="para">
  Der MySQL Native Driver bietet die Möglichkeit, Statistiken über die
  Kommunikation zwischen Client und Server zu sammeln. Es gibt zwei Arten von
  Statistiken:
  <ul class="itemizedlist">
   <li class="listitem">
    <span class="simpara">Client-Statistiken</span>
   </li>
   <li class="listitem">
    <span class="simpara">Verbindungsstatistiken</span>
   </li>
  </ul>
 </p>
 <p class="para">
  Wenn die Erweiterung <a href="book.mysqli.php" class="link">mysqli</a> verwendet
  wird, können diese Statistiken über zwei API-Aufrufe abgerufen werden:
  <ul class="itemizedlist">
   <li class="listitem">
    <span class="simpara"><span class="function"><a href="function.mysqli-get-client-stats.php" class="function">mysqli_get_client_stats()</a></span></span>
   </li>
   <li class="listitem">
    <span class="simpara"><span class="function"><a href="mysqli.get-connection-stats.php" class="function">mysqli_get_connection_stats()</a></span></span>
   </li>
  </ul>
 </p>

 <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
  <span class="simpara">
   Die Statistiken werden für alle Erweiterungen zusammengefasst, die den
   MySQL Native Driver verwenden. Wenn zum Beispiel sowohl die Erweiterung
   <a href="book.mysqli.php" class="link">mysqli</a> als auch der PDO-MySQL-Treiber so
   konfiguriert sind, dass sie MySQLnd verwenden, dann wirken sich die
   Funktionsaufrufe von <a href="book.mysqli.php" class="link">mysqli</a> und die
   Methodenaufrufe von PDO auf die Statistik aus.
  </span>
  <span class="simpara">
   Es gibt keine Möglichkeit, herauszufinden, wie sehr ein bestimmter
   API-Aufruf einer Erweiterung, die gegen den MySQL Native Driver kompiliert
   wurde, eine bestimmte Statistik beeinflusst hat.
  </span>
 </p></blockquote>

 <div id="mysqlnd.stats.retrieve" class="section">
  <h2 class="title">Statistiken abrufen</h2>

  <p class="simpara">
   Auf die Client-Statistiken kann mit der Funktion
   <span class="function"><a href="function.mysqli-get-client-stats.php" class="function">mysqli_get_client_stats()</a></span> zugegriffen werden.
  </p>

  <p class="simpara">
   Auf die Verbindungstatistiken kann mit der Funktion
   <span class="function"><a href="mysqli.get-connection-stats.php" class="function">mysqli_get_connection_stats()</a></span> zugegriffen werden.
  </p>

  <p class="simpara">
   Beide Funktionen geben ein assoziatives Array zurück, wobei der Name einer
   Statistik der Schlüssel für die zugehörigen statistischen Daten ist.
  </p>
 </div>

 <div id="mysqlnd.stats.statistics" class="section">
  <h2 class="title">Statistiken vom MySQL Native Driver</h2>
  <p class="simpara">
   Die meisten Statistiken beziehen sich auf eine Verbindung, aber manche
   beziehen sich auf den Prozess; in diesem Fall wird darauf hingewiesen.
   
  </p>
  <p class="simpara">
   Die folgenden Statistiken werden vom MySQL Native Driver erstellt:
  </p>

  <dl>
   <strong class="title">Netzwerkbezogene Statistiken</strong>

   
    <dt id="mysqlnd.stats.statistics.bytes-sent"><code class="literal">bytes_sent</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der von PHP an den MySQL-Server gesendeten Bytes.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.bytes-received"><code class="literal">bytes_received</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der vom MySQL-Server empfangenen Bytes.
     </span>
    </dd>
   
   
    <dt id="mysqlnd.stats.statistics.packets-sent"><code class="literal">packets_sent</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der vom MySQL-Client-Server-Protokoll gesendeten Pakete.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.packets-received"><code class="literal">packets_received</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der vom MySQL-Client-Server-Protokoll empfangenen Pakete.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.protocol-overhead-in"><code class="literal">protocol_overhead_in</code></dt>
    <dd>
     <span class="simpara">
      Der Overhead des MySQL-Client-Server-Protokolls für eingehenden
      Datenverkehr in Bytes. Derzeit wird nur der Paket-Header (4 Bytes) als
      Overhead betrachtet.
      <code class="code">protocol_overhead_in = packets_received * 4</code>
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.protocol-overhead-out"><code class="literal">protocol_overhead_out</code></dt>
    <dd>
     <span class="simpara">
      Der Overhead des MySQL-Client-Server-Protokolls für ausgehenden
      Datenverkehr in Bytes. Derzeit wird nur der Paket-Header (4 Bytes) als
      Overhead betrachtet.
      <code class="code">protocol_overhead_out = packets_received * 4</code>
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.bytes-received-ok-packet"><code class="literal">bytes_received_ok_packet</code></dt>
    <dd>
     <span class="simpara">
      Die Gesamtgröße der mit dem MySQL-Client-Server-Protokoll empfangenen
      OK-Pakete in Bytes. Die OK-Pakete können eine Statusmeldung enthalten,
      deren Länge variieren kann, weshalb die Größe eines OK-Pakets nicht
      festgelegt ist.
     </span>
     <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
      <span class="simpara">
       Die Gesamtgröße in Bytes enthält die Größe des Header-Pakets
       (4 Bytes, siehe Protokoll-Overhead).
      </span>
     </p></blockquote>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.packets-received-ok"><code class="literal">packets_received_ok</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der mit dem MySQL-Client-Server-Protokoll empfangenen
      OK-Pakete.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.bytes-received-eof-packet"><code class="literal">bytes_received_eof_packet</code></dt>
    <dd>
     <span class="simpara">
      Die Gesamtgröße der mit dem MySQL-Client-Server-Protokoll empfangenen
      EOF-Pakete in Bytes. Die Größe von EOF kann je nach Serverversion
      variieren. Außerdem kann EOF eine Fehlermeldung enthalten.
     </span>
     <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
      <span class="simpara">
       Die Gesamtgröße in Bytes enthält die Größe des Header-Pakets
       (4 Bytes, siehe Protokoll-Overhead).
      </span>
     </p></blockquote>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.packets-received-eof"><code class="literal">packets_received_eof</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der mit dem MySQL-Client-Server-Protokoll empfangenen
      EOF-Pakete.
     </span>
     <span class="simpara">
      Wie bei anderen Paketstatistiken erhöht sich die Anzahl der Pakete auch
      dann, wenn PHP nicht das erwartete Paket, sondern z. B. eine
      Fehlermeldung empfängt.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.bytes-received-rset-header-packet"><code class="literal">bytes_received_rset_header_packet</code></dt>
    <dd>
     <span class="simpara">
      Die Gesamtgröße der mit dem MySQL-Client-Server-Protokoll empfangenen
      Header-Pakete der Ergebnismenge in Bytes.
      Die Größe der Pakete variiert in Abhängigkeit von der Nutzlast
      (<code class="literal">LOAD LOCAL INFILE</code>, <code class="literal">INSERT</code>,
      <code class="literal">UPDATE</code>, <code class="literal">SELECT</code>, Fehlermeldung).
     </span>
     <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
      <span class="simpara">
       Die Gesamtgröße in Bytes enthält die Größe des Header-Pakets
       (4 Bytes, siehe Protokoll-Overhead).
      </span>
     </p></blockquote>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.packets-received-rset-header"><code class="literal">packets_received_rset_header</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der mit dem MySQL-Client-Server-Protokoll empfangenen
      Header-Pakete der Ergebnismenge.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.bytes-received-rset-field-meta-packet"><code class="literal">bytes_received_rset_field_meta_packet</code></dt>
    <dd>
     <span class="simpara">
      Die Gesamtgröße der mit dem MySQL-Client-Server-Protokoll empfangenen
      Metadaten-Pakete (Spalteninformationen) der Ergebnismenge in Bytes.
      Die Größe hängt natürlich von den Feldern in der Ergebnismenge ab. Im
      Fall von COM_LIST_FIELDS kann das Paket auch eine Fehlermeldung oder ein
      EOF-Paket enthalten.
     </span>
     <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
      <span class="simpara">
       Die Gesamtgröße in Bytes enthält die Größe des Header-Pakets
       (4 Bytes, siehe Protokoll-Overhead).
      </span>
     </p></blockquote>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.packets-received-rset-field-meta"><code class="literal">packets_received_rset_field_meta</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der mit dem MySQL-Client-Server-Protokoll empfangenen
      Metadaten-Pakete (Spalteninformationen) der Ergebnismenge.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.bytes-received-rset-row-packet"><code class="literal">bytes_received_rset_row_packet</code></dt>
    <dd>
     <span class="simpara">
      Die Gesamtgröße der mit dem MySQL-Client-Server-Protokoll empfangenen
      Pakete mit den Zeilendaten der Ergebnismenge in Bytes.
      Das Paket kann auch eine Fehlermeldung oder ein EOF-Paket enthalten. Die
      Anzahl der Fehlermeldungen und EOF-Pakete können ermittelt werden, indem
      <code class="literal">rows_fetched_from_server_normal</code> und
      <code class="literal">rows_fetched_from_server_ps</code> von
      <code class="literal">bytes_received_rset_row_packet</code> abgezogen werden.
     </span>
     <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
      <span class="simpara">
       Die Gesamtgröße in Bytes enthält die Größe des Header-Pakets
       (4 Bytes, siehe Protokoll-Overhead).
      </span>
     </p></blockquote>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.packets-received-rset-row"><code class="literal">packets_received_rset_row</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der mit dem MySQL-Client-Server-Protokoll empfangenen Pakete
      mit den Zeilendaten der Ergebnismenge.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.bytes-received-prepare-response-packet"><code class="literal">bytes_received_prepare_response_packet</code></dt>
    <dd>
     <span class="simpara">
      Die Gesamtgröße der Pakete für die Initialisierung vorbereiteter
      Anweisungen (prepared statement init packets), die vom
      MySQL-Client-Server-Protokoll als OK zurückgegeben werden, in Bytes.
      Diese Pakete können auch Fehlermeldungen enthalten.
      Die Größe der Pakete hängt von der MySQL-Version ab.
     </span>
     <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
      <span class="simpara">
       Die Gesamtgröße in Bytes enthält die Größe des Header-Pakets
       (4 Bytes, siehe Protokoll-Overhead).
      </span>
     </p></blockquote>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.packets-received-prepare-response"><code class="literal">packets_received_prepare_response</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Pakete für die Initialisierung vorbereiteter Anweisungen
      (prepared statement init packets), die vom MySQL-Client-Server-Protokoll
      als OK zurückgegeben werden.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.bytes-received-change-user-packet"><code class="literal">bytes_received_change_user_packet</code></dt>
    <dd>
     <span class="simpara">
      Die Gesamtgröße der mit dem MySQL-Client-Server-Protokoll empfangenen
      COM_CHANGE_USER-Pakete in Bytes.
      Ein Paket kann auch eine Fehlermeldung oder ein EOF enthalten.
     </span>
     <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
      <span class="simpara">
       Die Gesamtgröße in Bytes enthält die Größe des Header-Pakets
       (4 Bytes, siehe Protokoll-Overhead).
      </span>
     </p></blockquote>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.packets-received-change-user"><code class="literal">packets_received_change_user</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der mit dem MySQL-Client-Server-Protokoll empfangenen
      COM_CHANGE_USER-Pakete.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.packets-sent-command"><code class="literal">packets_sent_command</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Befehle des MySQL-Client-Server-Protokolls, die von PHP
      an MySQL gesendet wurden.
     </span>
     <span class="simpara">
      Es gibt keine Möglichkeit herauszufinden, welche spezifischen Befehle
      gesendet wurden und wie viele davon.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.bytes-received-real-data_normal"><code class="literal">bytes_received_real_data_normal</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Bytes an Nutzdaten, die der PHP-Client über das
      Textprotokoll von <code class="literal">mysqlnd</code> abgerufen hat.
     </span>
     <span class="simpara">
      Dies ist die Größe der tatsächlichen Daten, die in den Ergebnismengen
      enthalten sind, die vom PHP-Client abgerufen wurden und nicht aus
      vorbereiteten Anweisungen stammen.
     </span>
     <span class="simpara">
      Zu beachten ist, dass, obwohl eine vollständige Ergebnismenge von
      <code class="literal">mysqlnd</code> aus MySQL abgerufen wurde, diese Statistik
      nur die tatsächlichen Daten zählt, die vom PHP-Client aus
      <code class="literal">mysqlnd</code> abgerufen wurden.
     </span>
     <p class="para">
      Das folgende Beispiel zeigt eine Codesequenz, die den Wert erhöht:
      <div class="example-contents">
<div class="cdata"><pre>
$mysqli = new mysqli();
$res = $mysqli-&gt;query(&quot;SELECT &#039;abc&#039;&quot;);
$res-&gt;fetch_assoc();
$res-&gt;close();
</pre></div>
      </div>

      Jeder Abrufvorgang erhöht den Wert.
     </p>
     <p class="para">
      Die Statistik wird jedoch nicht erhöht, wenn die Ergebnismenge auf dem
      Client nur gepuffert, aber nicht abgerufen wird, wie im folgenden
      Beispiel:
      <div class="example-contents">
<div class="cdata"><pre>
$mysqli = new mysqli();
$res = $mysqli-&gt;query(&quot;SELECT &#039;abc&#039;&quot;);
$res-&gt;close();
</pre></div>
      </div>

     </p>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.bytes-received-real-data-ps"><code class="literal">bytes_received_real_data_ps</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Bytes an Nutzdaten, die der PHP-Client über das Protokoll
      für vorbereitete Anweisungen von <code class="literal">mysqlnd</code> abgerufen hat.
     </span>
     <span class="simpara">
      Dies ist die Größe der tatsächlichen Daten, die in den Ergebnismengen
      enthalten sind, die vom PHP-Client abgerufen wurden und aus
      vorbereiteten Anweisungen stammen.
     </span>
     <span class="simpara">
      Der Wert erhöht sich nur dann, wenn die Ergebnismenge anschließend vom
      PHP-Client gelesen wird.
     </span>
     <span class="simpara">
      Zu beachten ist, dass, obwohl eine vollständige Ergebnismenge von
      <code class="literal">mysqlnd</code> aus MySQL abgerufen wurde, diese Statistik
      nur die tatsächlichen Daten zählt, die vom PHP-Client aus
      <code class="literal">mysqlnd</code> abgerufen wurden.
     </span>
     <span class="simpara">
      Siehe auch <code class="literal">bytes_received_real_data_normal</code>.
     </span>
    </dd>
   
  </dl>

  <dl>
   <strong class="title">Statistiken zu Ergebnismengen</strong>

   
    <dt id="mysqlnd.stats.statistics.result-set-queries"><code class="literal">result_set_queries</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Abfragen, die eine Ergebnismenge erzeugt haben.
      Beispiele für Abfragen, die eine Ergebnismenge erzeugen:
      <code class="literal">SELECT</code>, <code class="literal">SHOW</code>.
     </span>
     <span class="simpara">
      Die Statistik wird nicht erhöht, wenn beim Lesen des Header-Pakets einer
      Zeile der Ergebnismenge ein Fehler aufgetreten ist.
     </span>
     <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
      <span class="simpara">
       Diese Statistik kann als indirektes Maß für die Anzahl der von PHP an
       MySQL gesendeten Anfragen verwendet werden. Dies kann helfen, einen
       Client zu identifizieren, der eine hohe Datenbanklast verursacht.
      </span>
     </p></blockquote>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.non-result-set-queries"><code class="literal">non_result_set_queries</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Abfragen, die keine Ergebnismenge erzeugt haben.
      Beispiele für Abfragen, die keine Ergebnismenge erzeugen:
      <code class="literal">INSERT</code>, <code class="literal">UPDATE</code>, <code class="literal">LOAD DATA</code>.
     </span>
     <span class="simpara">
      Die Statistik wird nicht erhöht, wenn beim Lesen des Header-Pakets einer
      Zeile der Ergebnismenge ein Fehler aufgetreten ist.
     </span>
     <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
      <span class="simpara">
       Diese Statistik kann als indirektes Maß für die Anzahl der von PHP an
       MySQL gesendeten Anfragen verwendet werden. Dies kann helfen, einen
       Client zu identifizieren, der eine hohe Datenbanklast verursacht.
      </span>
     </p></blockquote>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.no-index-used"><code class="literal">no_index_used</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Abfragen, die eine Ergebnismenge erzeugt, aber keinen
      Index verwendet haben (siehe auch die mysqld-Startoption
      <code class="literal">--log-queries-not-using-indexes</code>).
     </span>
     <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
      <span class="simpara">
       Solche Anfragen können als Exception gemeldet werden, indem
       <code class="code">mysqli_report(MYSQLI_REPORT_INDEX);</code> aufgerufen wird.
       Es ist möglich, sie stattdessen als Warnung zu melden, indem
       <code class="code">mysqli_report(MYSQLI_REPORT_INDEX ^ MYSQLI_REPORT_STRICT);</code>
       aufgerufen wird.
      </span>
     </p></blockquote>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.bad-index-used"><code class="literal">bad_index_used</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Abfragen, die eine Ergebnismenge erzeugt, aber keinen
      guten Index verwendet haben (siehe auch die mysqld-Startoption
      <code class="literal">--log-slow-queries</code>).
     </span>
     <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
      <span class="simpara">
       Solche Anfragen können als Exception gemeldet werden, indem
       <code class="code">mysqli_report(MYSQLI_REPORT_INDEX);</code> aufgerufen wird.
       Es ist möglich, sie stattdessen als Warnung zu melden, indem
       <code class="code">mysqli_report(MYSQLI_REPORT_INDEX ^ MYSQLI_REPORT_STRICT);</code>
       aufgerufen wird.
      </span>
     </p></blockquote>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.slow-queries"><code class="literal">slow_queries</code></dt>
    <dd>
     <span class="simpara">
      SQL-Anweisungen, deren Ausführung länger als
      <code class="literal">long_query_time</code> Sekunden dauerte und bei denen
      mindestens <code class="literal">min_examined_row_limit</code> Zeilen untersucht
      werden mussten.
     </span>
     <div class="caution"><strong class="caution">Achtung</strong>
      <p class="simpara">
       Wird von <span class="function"><a href="function.mysqli-report.php" class="function">mysqli_report()</a></span> nicht gemeldet.
      </p>
     </div>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.buffered-sets"><code class="literal">buffered_sets</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der gepufferten Ergebnismengen, die von normalen Abfragen
      (d. h. nicht über eine vorbereitete Anweisung) zurückgegeben wurden.
     </span>
     <p class="para">
      Beispiele für API-Aufrufe, die Ergebnismengen auf dem Client puffern:
      <span class="simplelist"><span class="function"><a href="mysqli.query.php" class="function">mysqli_query()</a></span>, <span class="function"><a href="mysqli.store-result.php" class="function">mysqli_store_result()</a></span>, <span class="function"><a href="mysqli-stmt.get-result.php" class="function">mysqli_stmt_get_result()</a></span></span>
     </p>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.unbuffered-sets"><code class="literal">unbuffered_sets</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der ungepufferten Ergebnismengen, die von normalen Abfragen
      (d. h. nicht über eine vorbereitete Anweisung) zurückgegeben wurden.
     </span>
     <p class="para">
      Ein Beispiel für API-Aufrufe, die keine Ergebnismengen auf dem Client
      puffern:
      <span class="simplelist"><span class="function"><a href="mysqli.use-result.php" class="function">mysqli_use_result()</a></span></span>
     </p>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.ps-buffered-sets"><code class="literal">ps_buffered_sets</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der gepufferten Ergebnismengen, die von vorbereiteten
      Anweisungen zurückgegeben wurden.
     </span>
     <p class="para">
      Ein Beispiel für API-Aufrufe, die Ergebnismengen auf dem Client puffern:
      <span class="simplelist"><span class="function"><a href="mysqli-stmt.store-result.php" class="function">mysqli_stmt_store_result()</a></span></span>
     </p>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.ps-unbuffered-sets"><code class="literal">ps_unbuffered_sets</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der ungepufferten Ergebnismengen, die von vorbereiteten
      Anweisungen zurückgegeben wurden.
     </span>
     <span class="simpara">
      In der Standardeinstellung werden vorbereitete Anweisungen nicht
      gepuffert, sodass die meisten vorbereiteten Anweisungen in dieser
      Statistik enthalten sind.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.flushed-normal-sets"><code class="literal">flushed_normal_sets</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Ergebnismengen, die von normalen Abfragen (d. h. nicht
      über eine vorbereitete Anweisung) zurückgegeben wurden, mit ungelesenen
      Daten, die stillschweigend geleert wurden..
     </span>
     <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
      <span class="simpara">
       Die Bereinigung (Flushing) erfolgt nur bei ungepufferten Ergebnismengen.
      </span>
      <span class="simpara">
       Ungepufferte Ergebnismengen müssen vollständig abgerufen werden, bevor
       eine neue Abfrage über die Verbindung ausgeführt werden kann, sonst
       gibt MySQL einen Fehler aus. Wenn eine Anwendung nicht alle Zeilen aus
       einer ungepufferten Ergebnismenge abruft, ruft mysqlnd die
       Ergebnismenge implizit ab, um die Verbindung freizugeben.
      </span>
      <span class="simpara">
       Siehe auch <code class="literal">rows_skipped_normal</code>,
       <code class="literal">rows_skipped_ps</code>.
      </span>
      <p class="para">
       Ein paar mögliche Ursachen für einen impliziten Flush:
       <ul class="itemizedlist">
        <li class="listitem">
         <span class="simpara">
          Eine fehlerhafte Client-Anwendung
         </span>
        </li>
        <li class="listitem">
         <span class="simpara">
          Der Client hat aufgehört, Zeilen abzurufen, weil er gefunden hat,
          wonach er gesucht hat, aber die Ergebnismenge wurde noch nicht
          vollständig abgerufen
         </span>
        </li>
        <li class="listitem">
         <span class="simpara">
          Die Client-Anwendung wurde unerwartet beendet
         </span>
        </li>
       </ul>
      </p>
     </p></blockquote>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.flushed-ps-sets"><code class="literal">flushed_ps_sets</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Ergebnismengen vorbereiteter Anweisungen mit ungelesenen
      Daten, die stillschweigend geleert wurden.
     </span>
     <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
      <span class="simpara">
       Die Bereinigung (Flushing) erfolgt nur bei ungepufferten Ergebnismengen.
      </span>
      <span class="simpara">
       Ungepufferte Ergebnismengen müssen vollständig abgerufen werden, bevor
       eine neue Abfrage über die Verbindung ausgeführt werden kann, sonst
       gibt MySQL einen Fehler aus. Wenn eine Anwendung nicht alle Zeilen aus
       einer ungepufferten Ergebnismenge abruft, ruft mysqlnd die
       Ergebnismenge implizit ab, um die Verbindung freizugeben.
      </span>
      <span class="simpara">
       Siehe auch <code class="literal">rows_skipped_normal</code>,
       <code class="literal">rows_skipped_ps</code>.
      </span>
      <p class="para">
       Ein paar mögliche Ursachen für einen impliziten Flush:
       <ul class="itemizedlist">
        <li class="listitem">
         <span class="simpara">
          Eine fehlerhafte Client-Anwendung
         </span>
        </li>
        <li class="listitem">
         <span class="simpara">
          Der Client hat aufgehört, Zeilen abzurufen, weil er gefunden hat,
          wonach er gesucht hat, aber die Ergebnismenge wurde noch nicht
          vollständig abgerufen
         </span>
        </li>
        <li class="listitem">
         <span class="simpara">
          Die Client-Anwendung wurde unerwartet beendet
         </span>
        </li>
       </ul>
      </p>
     </p></blockquote>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.ps-prepared-never-executed"><code class="literal">ps_prepared_never_executed</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der vorbereiteten, aber nie ausgeführten Anweisungen.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.ps-prepared-once-executed"><code class="literal">ps_prepared_once_executed</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der vorbereiteten Anweisungen, die nur einmal ausgeführt
      wurden.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.rows-fetched-from-server-normal"><code class="literal">rows_fetched_from_server_normal</code></dt>
    <dt><code class="literal">rows_fetched_from_server_ps</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Zeilen der Ergebnismenge, die vom Server abgerufen
      wurden. Dazu gehören auch die Zeilen, die nicht vom Client gelesen
      wurden, sondern implizit aus geleerten ungepufferten Ergebnismengen
      abgerufen wurden.
     </span>
     <span class="simpara">
      Siehe auch <code class="literal">packets_received_rset_row</code>.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.rows-buffered-from-server-normal"><code class="literal">rows_buffered_from_client_normal</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der gepufferten Zeilen, die von einer normalen Abfrage
      stammen.
     </span>
     <span class="simpara">
      Dies ist die Anzahl der Zeilen, die von MySQL abgerufen und auf dem
      Client gepuffert wurden.
     </span>
     <p class="para">
      Beispiele für Abfragen, die Ergebnisse puffern:
      <ul class="simplelist">
       <li><span class="function"><a href="mysqli.query.php" class="function">mysqli_query()</a></span></li>
       <li><span class="function"><a href="mysqli.store-result.php" class="function">mysqli_store_result()</a></span></li>
      </ul>
     </p>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.rows-buffered-from-client-ps"><code class="literal">rows_buffered_from_client_ps</code></dt>
    <dd>
     <span class="simpara">
      Wie <code class="literal">rows_buffered_from_client_normal</code>, aber für
      vorbereitete Anweisungen.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.rows-fetched-from-client-normal-buffered"><code class="literal">rows_fetched_from_client_normal_buffered</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Zeilen, die der Client aus einer gepufferten Ergebnismenge
      abgerufen hat, die durch eine normale Abfrage erstellt wurde.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.rows-fetched-from-client-ps-buffered"><code class="literal">rows_fetched_from_client_ps_buffered</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Zeilen, die der Client aus einer gepufferten Ergebnismenge
      abgerufen hat, die durch eine vorbereitete Anweisung erstellt wurde.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.rows-fetched-from-client-normal-unbuffered"><code class="literal">rows_fetched_from_client_normal_unbuffered</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Zeilen, die der Client aus einer ungepufferten
      Ergebnismenge abgerufen hat, die durch eine normale Abfrage erstellt
      wurde.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.rows-fetched-from-client-ps-unbuffered"><code class="literal">rows_fetched_from_client_ps_unbuffered</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Zeilen, die der Client aus einer ungepufferten
      Ergebnismenge abgerufen hat, die durch eine vorbereitete Anweisung
      erstellt wurde.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.rows-fetched-from-client-ps-cursor"><code class="literal">rows_fetched_from_client_ps_cursor</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Zeilen, die der Client von einem durch eine vorbereitete
      Anweisung erstellten Zeiger (Cursor) abgerufen hat.
     </span>
    </dd>
   

   
   
    <dt id="mysqlnd.stats.statistics.rows-skipped-normal"><code class="literal">rows_skipped_normal</code></dt>
    <dt><code class="literal">rows_skipped_ps</code></dt>
    <dd>
     <span class="simpara">
      Für zukünftige Verwendung reserviert (wird derzeit nicht unterstützt).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.copy-on-write"><code class="literal">copy_on_write_saved</code></dt>
    <dt><code class="literal">copy_on_write_performed</code></dt>
    <dd>
     <span class="simpara">
      Diese Statistik bezieht sich auf die Prozessebene.
     </span>
     <span class="simpara">
      Bei mysqlnd zeigen die von den Erweiterungen zurückgegebenen Variablen
      auf die internen Netzwerk-Ergebnispuffer von mysqlnd. Wenn die Daten
      nicht verändert werden, werden die abgerufenen Daten nur einmal im
      Speicher gehalten. Werden die Daten jedoch verändert, muss mysqlnd ein
      Copy-on-Write (Kopieren beim Schreiben) durchführen.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.free-result"><code class="literal">explicit_free_result</code></dt>
    <dt><code class="literal">implicit_free_result</code></dt>
    <dd>
     <span class="simpara">
      Diese Statistik bezieht sich auf die Verbindungs- und die Prozessebene.
     </span>
     <span class="simpara">
      Die Anzahl der freigegebenen Ergebnismengen.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-text-fetched-null"><code class="literal">proto_text_fetched_null</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_NULL</code>,
      die aus einer normalen Abfrage abgerufen wurden (MySQL-Textprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-binary-fetched-null"><code class="literal">proto_binary_fetched_null</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_NULL</code>, die aus
      einer vorbereiteten Anweisung abgerufen wurden (MySQL-Binärprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-text-fetched-bit"><code class="literal">proto_text_fetched_bit</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_BIT</code>,
      die aus einer normalen Abfrage abgerufen wurden (MySQL-Textprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-binary-fetched-bit"><code class="literal">proto_binary_fetched_bit</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_BIT</code>, die aus
      einer vorbereiteten Anweisung abgerufen wurden (MySQL-Binärprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-text-fetched-tinyint"><code class="literal">proto_text_fetched_tinyint</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_TINY</code>,
      die aus einer normalen Abfrage abgerufen wurden (MySQL-Textprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-binary-fetched-tinyint"><code class="literal">proto_binary_fetched_tinyint</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_TINY</code>, die aus
      einer vorbereiteten Anweisung abgerufen wurden (MySQL-Binärprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-text-fetched-short"><code class="literal">proto_text_fetched_short</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_SHORT</code>,
      die aus einer normalen Abfrage abgerufen wurden (MySQL-Textprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-binary-fetched-short"><code class="literal">proto_binary_fetched_short</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_SHORT</code>, die aus
      einer vorbereiteten Anweisung abgerufen wurden (MySQL-Binärprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-text-fetched-int24"><code class="literal">proto_text_fetched_int24</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_INT24</code>,
      die aus einer normalen Abfrage abgerufen wurden (MySQL-Textprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-binary-fetched-int24"><code class="literal">proto_binary_fetched_int24</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_INT24</code>, die aus
      einer vorbereiteten Anweisung abgerufen wurden (MySQL-Binärprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-text-fetched-int"><code class="literal">proto_text_fetched_int</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_LONG</code>,
      die aus einer normalen Abfrage abgerufen wurden (MySQL-Textprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-binary-fetched-int"><code class="literal">proto_binary_fetched_int</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_LONG</code>, die aus
      einer vorbereiteten Anweisung abgerufen wurden (MySQL-Binärprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-text-fetched-bigint"><code class="literal">proto_text_fetched_bigint</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_LONGLONG</code>,
      die aus einer normalen Abfrage abgerufen wurden (MySQL-Textprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-binary-fetched-bigint"><code class="literal">proto_binary_fetched_bigint</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_LONGLONG</code>, die aus
      einer vorbereiteten Anweisung abgerufen wurden (MySQL-Binärprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-text-fetched-decimal"><code class="literal">proto_text_fetched_decimal</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_DECIMAL</code> oder <code class="literal">MYSQL_TYPE_NEWDECIMAL</code>,
      die aus einer normalen Abfrage abgerufen wurden (MySQL-Textprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-binary-fetched-decimal"><code class="literal">proto_binary_fetched_decimal</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_DECIMAL</code> oder <code class="literal">MYSQL_TYPE_NEWDECIMAL</code>,
      die aus einer vorbereiteten Anweisung abgerufen wurden (MySQL-Binärprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-text-fetched-float"><code class="literal">proto_text_fetched_float</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_FLOAT</code>,
      die aus einer normalen Abfrage abgerufen wurden (MySQL-Textprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-binary-fetched-float"><code class="literal">proto_binary_fetched_float</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_FLOAT</code>, die aus
      einer vorbereiteten Anweisung abgerufen wurden (MySQL-Binärprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-text-fetched-double"><code class="literal">proto_text_fetched_double</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_DOUBLE</code>,
      die aus einer normalen Abfrage abgerufen wurden (MySQL-Textprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-binary-fetched-double"><code class="literal">proto_binary_fetched_double</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_DOUBLE</code>, die aus
      einer vorbereiteten Anweisung abgerufen wurden (MySQL-Binärprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-text-fetched-date"><code class="literal">proto_text_fetched_date</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_DATE</code> oder <code class="literal">MYSQL_TYPE_NEWDATE</code>,
      die aus einer normalen Abfrage abgerufen wurden (MySQL-Textprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-binary-fetched-date"><code class="literal">proto_binary_fetched_date</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_DATE</code> oder <code class="literal">MYSQL_TYPE_NEWDATE</code>,
      die aus einer vorbereiteten Anweisung abgerufen wurden (MySQL-Binärprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-text-fetched-year"><code class="literal">proto_text_fetched_year</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_YEAR</code>,
      die aus einer normalen Abfrage abgerufen wurden (MySQL-Textprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-binary-fetched-year"><code class="literal">proto_binary_fetched_year</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_YEAR</code>, die aus
      einer vorbereiteten Anweisung abgerufen wurden (MySQL-Binärprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-text-fetched-time"><code class="literal">proto_text_fetched_time</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_TIME</code>,
      die aus einer normalen Abfrage abgerufen wurden (MySQL-Textprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-binary-fetched-time"><code class="literal">proto_binary_fetched_time</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_TIME</code>, die aus
      einer vorbereiteten Anweisung abgerufen wurden (MySQL-Binärprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-text-fetched-datetime"><code class="literal">proto_text_fetched_datetime</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_DATETIME</code>,
      die aus einer normalen Abfrage abgerufen wurden (MySQL-Textprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-binary-fetched-datetime"><code class="literal">proto_binary_fetched_datetime</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_DATETIME</code>, die aus
      einer vorbereiteten Anweisung abgerufen wurden (MySQL-Binärprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-text-fetched-timestamp"><code class="literal">proto_text_fetched_timestamp</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_TIMESTAMP</code>,
      die aus einer normalen Abfrage abgerufen wurden (MySQL-Textprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-binary-fetched-timestamp"><code class="literal">proto_binary_fetched_timestamp</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_TIMESTAMP</code>, die aus
      einer vorbereiteten Anweisung abgerufen wurden (MySQL-Binärprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-text-fetched-string"><code class="literal">proto_text_fetched_string</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_STRING</code>, <code class="literal">MYSQL_TYPE_VARSTRING</code> oder <code class="literal">MYSQL_TYPE_VARCHAR</code>
      fetched from a normal query (MySQL text protocol).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-binary-fetched-string"><code class="literal">proto_binary_fetched_string</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_STRING</code>, <code class="literal">MYSQL_TYPE_VARSTRING</code> oder <code class="literal">MYSQL_TYPE_VARCHAR</code>
      fetched from a prepared statement (MySQL binary protocol).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-text-fetched-blob"><code class="literal">proto_text_fetched_blob</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_TINY_BLOB</code>,
      <code class="literal">MYSQL_TYPE_MEDIUM_BLOB</code>,
      <code class="literal">MYSQL_TYPE_LONG_BLOB</code> oder
      <code class="literal">MYSQL_TYPE_BLOB</code>,
      die aus einer normalen Abfrage abgerufen wurden (MySQL-Textprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-binary-fetched-blob"><code class="literal">proto_binary_fetched_blob</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_TINY_BLOB</code>,
      <code class="literal">MYSQL_TYPE_MEDIUM_BLOB</code>,
      <code class="literal">MYSQL_TYPE_LONG_BLOB</code> oder
      <code class="literal">MYSQL_TYPE_BLOB</code> die aus
      einer vorbereiteten Anweisung abgerufen wurden (MySQL-Binärprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-text-fetched-enum"><code class="literal">proto_text_fetched_enum</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_ENUM</code>,
      die aus einer normalen Abfrage abgerufen wurden (MySQL-Textprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-binary-fetched-enum"><code class="literal">proto_binary_fetched_enum</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_ENUM</code>, die aus
      einer vorbereiteten Anweisung abgerufen wurden (MySQL-Binärprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-text-fetched-set"><code class="literal">proto_text_fetched_set</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_SET</code>,
      die aus einer normalen Abfrage abgerufen wurden (MySQL-Textprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-binary-fetched-set"><code class="literal">proto_binary_fetched_set</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_SET</code>, die aus
      einer vorbereiteten Anweisung abgerufen wurden (MySQL-Binärprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-text-fetched-geometry"><code class="literal">proto_text_fetched_geometry</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_GEOMETRY</code>,
      die aus einer normalen Abfrage abgerufen wurden (MySQL-Textprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-binary-fetched-geometry"><code class="literal">proto_binary_fetched_geometry</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten des Typs
      <code class="literal">MYSQL_TYPE_GEOMETRY</code>, die aus
      einer vorbereiteten Anweisung abgerufen wurden (MySQL-Binärprotokoll).
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-text-fetched-other"><code class="literal">proto_text_fetched_other</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten eines zuvor nicht aufgelisteten Typs
      <code class="literal">MYSQL_TYPE_<span class="replaceable">*</span></code>,
      die aus einer normalen Abfrage abgerufen wurden (MySQL-Textprotokoll).
     </span>
     <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
      <span class="simpara">
       Theoretisch sollte dies immer <code class="literal">0</code> sein.
      </span>
     </p></blockquote>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.proto-binary-fetched-other"><code class="literal">proto_binary_fetched_other</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Spalten eines zuvor nicht aufgelisteten Typs
      <code class="literal">MYSQL_TYPE_<span class="replaceable">*</span></code>, die aus
      einer vorbereiteten Anweisung abgerufen wurden (MySQL-Binärprotokoll).
     </span>
     <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
      <span class="simpara">
       Theoretisch sollte dies immer <code class="literal">0</code> sein.
      </span>
     </p></blockquote>
    </dd>
   

  </dl>

  <dl>
   <strong class="title">Verbindungsbezogene Statistiken</strong>

   
    <dt id="mysqlnd.stats.statistics.connect-success"><code class="literal">connect_success</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der erfolgreichen Verbindungsversuche.
     </span>
     <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
      <span class="simpara">
       <code class="literal">connect_success</code> enthält die Summe der erfolgreichen
       Versuche, persistente und nicht-persistente Verbindungen herzustellen.
       Die Anzahl der erfolgreichen Versuche, eine nicht-persistente
       Verbindung herzustellen, ist also
       <code class="literal">connect_success - pconnect_success</code>.
      </span>
     </p></blockquote>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.pconnect-success"><code class="literal">pconnect_success</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der erfolgreichen Versuche, eine persistente (dauerhafte)
      Verbindung herzustellen.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.connect-failure"><code class="literal">connect_failure</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der fehlgeschlagenen Verbindungsversuche.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.reconnect"><code class="literal">reconnect</code></dt>
    <dd>
     <span class="simpara">
      Diese Statistik bezieht sich auf die Prozessebene.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.active-connections"><code class="literal">active_connections</code></dt>
    <dd>
     <span class="simpara">
      Diese Statistik bezieht sich auf die Prozessebene.
     </span>
     <span class="simpara">
      Die Anzahl der aktiven Verbindungen (persistent und nicht-persistent).
     </span>
     <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
      <span class="simpara">
       Die Anzahl der aktiven nicht-persistenten Verbindungen ist
       <code class="literal">active_connections - active_persistent_connections</code>.
      </span>
     </p></blockquote>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.active-persistent-connections"><code class="literal">active_persistent_connections</code></dt>
    <dd>
     <span class="simpara">
      Diese Statistik bezieht sich auf die Prozessebene.
     </span>
     <span class="simpara">
      Die Anzahl der aktiven persistenten Verbindungen.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.explicit-close"><code class="literal">explicit_close</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der explizit geschlossenen Verbindungen.
     </span>
     <div class="example" id="example-1">
      <p><strong>Beispiel #1 Beispiele für Codeschnipsel, die zu einem expliziten Schließen führen</strong></p>
      <ul class="itemizedlist">
       <li class="listitem">
        <div class="example-contents">
<div class="cdata"><pre>
$link = new mysqli(/* ... */);
$link-&gt;close(/* ... */);
</pre></div>
        </div>

       </li>
       <li class="listitem">
        <div class="example-contents">
<div class="cdata"><pre>
$link = new mysqli(/* ... */);
$link-&gt;connect(/* ... */);
</pre></div>
        </div>

       </li>
      </ul>
     </div>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.implicit-close"><code class="literal">implicit_close</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der implizit geschlossenen Verbindungen.
     </span>
     <div class="example" id="example-2">
      <p><strong>Beispiel #2 Beispiele für Codeschnipsel, die zu einem impliziten Schließen führen</strong></p>
      <ul class="itemizedlist">
       <li class="listitem">
        <div class="example-contents">
<div class="cdata"><pre>
$link = new mysqli(/* ... */);
$link-&gt;real_connect(/* ... */);
</pre></div>
        </div>

       </li>
       <li class="listitem">
        <div class="example-contents">
         <code class="code">unset($link)</code>
        </div>

       </li>
       <li class="listitem">
        <span class="simpara">
         Persistente Verbindung: eine gepoolte Verbindung wurde mit
         real_connect erstellt und es können unbekannte Optionen gesetzt sein
         - implizites Schließen, um die Rückgabe einer Verbindung mit
         unbekannten Optionen zu vermeiden
        </span>
       </li>
       <li class="listitem">
        <span class="simpara">
         Persistente Verbindung: ping/change_user schlägt fehl und ext/mysqli
         schließt die Verbindung
        </span>
       </li>
       <li class="listitem">
        <span class="simpara">
         Am Ende der Skriptausführung: Schließen der Verbindungen, die noch
         nicht vom Benutzer geschlossen wurden
        </span>
       </li>
      </ul>
     </div>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.disconnect-close"><code class="literal">disconnect_close</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der fehlgeschlagenen Verbindungen, die der C-API-Aufruf
      <code class="literal">mysql_real_connect</code> beim Versuch, eine Verbindung
      aufzubauen, meldet.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.in-middle-of-command-close"><code class="literal">in_middle_of_command_close</code></dt>
    <dd>
     <span class="simpara">
      Diese Statistik bezieht sich auf die Prozessebene.
     </span>
     <span class="simpara">
      Eine Verbindung wurde mitten in der Ausführung eines Befehls geschlossen
      (noch nicht abgerufene Ergebnismengen, nachdem eine Abfrage gesendet und
      bevor eine Antwort abgerufen wurde, während Daten abgerufen wurden,
      während Daten mit LOAD DATA übertragen wurden).
     </span>
     <div class="warning"><strong class="warning">Warnung</strong>
      <p class="simpara">
       Sofern keine asynchronen Abfragen verwendet werden, sollte dies nur
       passieren, wenn ein Skript unerwartet gestoppt wird und PHP die
       Verbindungen automatisch schließt.
      </p>
     </div>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.init-command-executed-count"><code class="literal">init_command_executed_count</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der ausgeführten init-Befehle,
      zum Beispiel <code class="code">mysqli_options(MYSQLI_INIT_COMMAND , $value)</code>.
     </span>
     <span class="simpara">
      Die Anzahl der erfolgreichen Ausführungen ist
      <code class="literal">init_command_executed_count - init_command_failed_count</code>.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.init-command-failed-count"><code class="literal">init_command_failed_count</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der fehlgeschlagenen init-Befehle.
     </span>
    </dd>
   
  </dl>

  <dl>
   <strong class="title">Statistiken im Zusammenhang mit dem <code class="literal">COM_*</code>-Befehl</strong>

   
    <dt id="mysqlnd.stats.statistics.com"><code class="literal">com_quit</code></dt>
    <dt><code class="literal">com_init_db</code></dt>
    <dt><code class="literal">com_query</code></dt>
    <dt><code class="literal">com_field_list</code></dt>
    <dt><code class="literal">com_create_db</code></dt>
    <dt><code class="literal">com_drop_db</code></dt>
    <dt><code class="literal">com_refresh</code></dt>
    <dt><code class="literal">com_shutdown</code></dt>
    <dt><code class="literal">com_statistics</code></dt>
    <dt><code class="literal">com_process_info</code></dt>
    <dt><code class="literal">com_connect</code></dt>
    <dt><code class="literal">com_process_kill</code></dt>
    <dt><code class="literal">com_debug</code></dt>
    <dt><code class="literal">com_ping</code></dt>
    <dt><code class="literal">com_time</code></dt>
    <dt><code class="literal">com_delayed_insert</code></dt>
    <dt><code class="literal">com_change_user</code></dt>
    <dt><code class="literal">com_binlog_dump</code></dt>
    <dt><code class="literal">com_table_dump</code></dt>
    <dt><code class="literal">com_connect_out</code></dt>
    <dt><code class="literal">com_register_slave</code></dt>
    <dt><code class="literal">com_stmt_prepare</code></dt>
    <dt><code class="literal">com_stmt_execute</code></dt>
    <dt><code class="literal">com_stmt_send_long_data</code></dt>
    <dt><code class="literal">com_stmt_close</code></dt>
    <dt><code class="literal">com_stmt_reset</code></dt>
    <dt><code class="literal">com_stmt_set_option</code></dt>
    <dt><code class="literal">com_stmt_fetch</code></dt>
    <dt><code class="literal">com_daemon</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl der Versuche, einen bestimmten
      <code class="literal">COM_*</code>-Befehl von PHP an MySQL zu senden.
     </span>
     <span class="simpara">
      Die Statistik wird erhöht, nachdem die Zeile geprüft wurde und
      unmittelbar bevor das entsprechende MySQL-Client-Server-Protokoll-Paket
      gesendet wird.
     </span>
     <div class="caution"><strong class="caution">Achtung</strong>
      <p class="simpara">
       Die Statistik wird nicht nach unten korrigiert, wenn MySQLnd das Paket
       nicht über die Leitung senden kann. Im Falle eines Fehlers gibt MySQLnd
       die PHP-Warnung <q class="quote">Error while sending %s packet. PID=%d.</q>
       aus.
      </p>
     </div>

     <div class="example" id="example-3">
      <p><strong>Beispiel #3 Beispiele für die Verwendung</strong></p>
      <ul class="itemizedlist">
       <li class="listitem">
        <span class="simpara">
         Überprüfen, ob PHP bestimmte Befehle an MySQL sendet, zum Beispiel,
         ob ein Client <code class="literal">COM_PROCESS_KILL</code> sendet
        </span>
       </li>
       <li class="listitem">
        <span class="simpara">
         Berechnen der durchschnittlichen Anzahl der ausgeführten
         vorbereiteten Anweisungen durch Vergleich von
         <code class="literal">COM_EXECUTE</code> und <code class="literal">COM_PREPARE</code>
        </span>
       </li>
       <li class="listitem">
        <span class="simpara">
         Überprüfen, ob PHP nicht-vorbereitete SQL-Anweisungen ausgeführt
         hat, indem kontrolliert wird, ob <code class="literal">COM_QUERY</code> Null
         ist
        </span>
       </li>
       <li class="listitem">
        <span class="simpara">
         Erkennen von PHP-Skripten, die eine zu große Anzahl von
         SQL-Anweisungen ausführen, indem <code class="literal">COM_QUERY</code> und
         <code class="literal">COM_EXECUTE</code> überprüft werden
        </span>
       </li>
      </ul>
     </div>
    </dd>
   
  </dl>

  <dl>
   <strong class="title">Sonstige Statistiken</strong>

   
    <dt id="mysqlnd.stats.statistics.stmt-close"><code class="literal">explicit_stmt_close</code></dt>
    <dt><code class="literal">implicit_stmt_close</code></dt>
    <dd>
     <span class="simpara">
      Diese Statistik bezieht sich auf die Prozessebene.
     </span>
     <span class="simpara">
      Die Anzahl der abgeschlossenen vorbereiteten Anweisungen.
     </span>
     <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
      <span class="simpara">
       Eine vorbereitete Anweisung wird immer explizit abgeschlossen. Sie wird
       nur dann implizit abgeschlossen, wenn ihre Vorbereitung fehlschlägt.
      </span>
     </p></blockquote>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.memory-management"><code class="literal">mem_emalloc_count</code></dt>
    <dt><code class="literal">mem_emalloc_ammount</code></dt>
    <dt><code class="literal">mem_ecalloc_count</code></dt>
    <dt><code class="literal">mem_ecalloc_ammount</code></dt>
    <dt><code class="literal">mem_realloc_count</code></dt>
    <dt><code class="literal">mem_realloc_ammount</code></dt>
    <dt><code class="literal">mem_efree_count</code></dt>
    <dt><code class="literal">mem_malloc_count</code></dt>
    <dt><code class="literal">mem_malloc_ammount</code></dt>
    <dt><code class="literal">mem_calloc_count</code></dt>
    <dt><code class="literal">mem_calloc_ammount</code></dt>
    <dt><code class="literal">mem_ealloc_count</code></dt>
    <dt><code class="literal">mem_ealloc_ammount</code></dt>
    <dt><code class="literal">mem_free_count</code></dt>
    <dd>
     <span class="simpara">
      Diese Statistik bezieht sich auf die Prozessebene.
     </span>
     <span class="simpara">
      Die Anzahl der Aufrufe bezüglich der Speicherverwaltung.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.command-buffer-too-small"><code class="literal">command_buffer_too_small</code></dt>
    
    
    <dd>
     <span class="simpara">
      Die Anzahl der Erweiterungen des Netzwerk-Befehlspuffers, wenn PHP einen
      Befehl an MySQL sendet.
     </span>
     <span class="simpara">
      MySQLnd weist jeder Verbindung einen internen Befehls-/Netzwerkpuffer von
      <a href="mysqlnd.config.php#ini.mysqlnd.net-cmd-buffer-size" class="link">mysqlnd.net_cmd_buffer_size</a>
      Bytes zu.
     </span>
     <span class="simpara">
      Wenn ein Befehl des MySQL-Client-Server-Protokolls, z. B.
      <code class="literal">COM_QUERY</code> (normale Abfrage), nicht in den Puffer
      passt, vergrößert MySQLnd den Puffer auf die Größe, die zum Senden des
      Befehls erforderlich ist. Jedes Mal, wenn der Puffer für eine Verbindung
      vergrößert wird, wird <code class="literal">command_buffer_too_small</code> um
      eins erhöht.
     </span>
     <span class="simpara">
      Wenn MySQLnd den Puffer bei fast jeder Verbindung über seine anfängliche
      Größe von
      <a href="mysqlnd.config.php#ini.mysqlnd.net-cmd-buffer-size" class="link">mysqlnd.net_cmd_buffer_size</a>
      Bytes hinaus vergrößern muss, sollte in Erwägung gezogen werden, die
      Standardgröße zu erhöhen, um Neuzuweisungen zu vermeiden.
     </span>
    </dd>
   

   
    <dt id="mysqlnd.stats.statistics.connection-reused"><code class="literal">connection_reused</code></dt>
    <dd>
     <span class="simpara">
      Die Anzahl, wie oft eine persistente Verbindung insgesamt
      wiederverwendet wurde.
     </span>
    </dd>
   
  </dl>
 </div>
</div>
<?php manual_footer($setup); ?>