<?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.overview.php',
    1 => '&Uuml;bersicht',
    2 => '&Uuml;bersicht',
  ),
  'up' => 
  array (
    0 => 'book.mysqlnd.php',
    1 => 'Mysqlnd',
  ),
  'prev' => 
  array (
    0 => 'book.mysqlnd.php',
    1 => 'Mysqlnd',
  ),
  'next' => 
  array (
    0 => 'mysqlnd.install.php',
    1 => 'Installation',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'reference/mysqlnd/overview.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="mysqlnd.overview" class="chapter">
 <h1 class="title">Übersicht</h1>

 <p class="simpara">
  <strong>Was er nicht ist</strong>
 </p>
 <p class="simpara">
  Der MySQL Native Driver wurde zwar als PHP-Erweiterung geschrieben, stellt
  dem PHP-Programmierer aber keine neue API zur Verfügung. Die
  Programmierer-APIs für die Verbindung zu MySQL-Datenbanken werden von den
  MySQL-Erweiterungen <code class="literal">mysqli</code> und PDO MYSQL bereitgestellt.
  Diese Erweiterungen können nun die Dienste des MySQL Native Drivers nutzen,
  um mit dem MySQL-Server zu kommunizieren. Daher sollte der MySQL Native
  Driver nicht als API betrachtet werden.
 </p>
 <p class="simpara">
  <strong>Warum sollte er verwendet werden?</strong>
 </p>
 <p class="simpara">
  Der MySQL Native Driver bietet gegenüber der MySQL Client Library eine Reihe
  von Vorteilen.
 </p>
 <p class="simpara">
  Die ältere MySQL Client Library wurde von MySQL AB (jetzt Oracle
  Corporation) geschrieben und daher unter der MySQL-Lizenz veröffentlicht.
  Dies führte letztendlich dazu, dass die MySQL-Unterstützung in PHP
  standardmäßig deaktiviert war. Der MySQL Native Driver hingegen wurde als
  Teil des PHP-Projekts entwickelt und wird daher unter der PHP-Lizenz
  veröffentlicht. Damit sind die Lizenzierungsprobleme, die es in der
  Vergangenheit gab, beseitigt.
 </p>
 <p class="simpara">
  Außerdem mussten die MySQL-Datenbankerweiterungen in der Vergangenheit mit
  einer Kopie der MySQL Client Library erstellt werden. Das bedeutete in der
  Regel, dass MySQL auf dem Rechner, auf dem der PHP-Quellcode erstellt wurde,
  installiert sein musste. Darüber hinaus riefen die
  MySQL-Datenbankerweiterungen die Datei der MySQL Client Library zur Laufzeit
  der PHP-Anwendungen auf, so dass die Datei auf dem System installiert sein
  musste. Mit dem MySQL Native Driver ist das nicht mehr der Fall, weil er in
  der Standarddistribution enthalten ist. Es ist also nicht erforderlich,
  MySQL zu installieren, um PHP zu entwickeln oder PHP-Datenbankanwendungen
  auszuführen.
 </p>
 <p class="simpara">
  Da der MySQL Native Driver als PHP-Erweiterung geschrieben wurde, ist er eng
  an die Funktionsweise von PHP gekoppelt. Dies führt insbesondere bei der
  Speichernutzung zu einer höheren Effizienz, weil der Treiber das
  Speicherverwaltungssystem von PHP nutzt. Außerdem unterstützt er das
  PHP-Speicherlimit. Mit dem MySQL Native Driver wird eine vergleichbare oder
  sogar bessere Leistung erzielt als mit der MySQL Client Library, da er stets
  die effizienteste Nutzung des Speichers gewährleistet. Ein Beispiel für die
  Speichereffizienz ist die Tatsache, dass bei Verwendung der MySQL Client
  Library jede Zeile zweimal im Speicher abgelegt wird, während beim MySQL
  Native Driver jede Zeile nur einmal im Speicher abgelegt wird.
 </p>
 <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
  <strong>Überwachen der Speichernutzung</strong><br />
  <span class="simpara">
   Aufgrund der Tatsache, dass der MySQL Native Driver die Speicherverwaltung
   von PHP verwendet, kann seine Speichernutzung mit
   <span class="function"><a href="function.memory-get-usage.php" class="function">memory_get_usage()</a></span> verfolgt werden. Dies ist mit
   libmysqlclient nicht möglich, weil es stattdessen die C-Funktion malloc()
   verwendet.
  </span>
 </p></blockquote>
 <p class="simpara">
  <strong>Besondere Fähigkeiten</strong>
 </p>
 <p class="simpara">
  Der native MySQL-Treiber bietet auch einige besondere Funktionalitäten, die
  nicht verfügbar sind, wenn die MySQL-Datenbankerweiterungen die MySQL Client
  Library verwenden. Diese besonderen Funktionalitäten sind unten aufgeführt:
 </p>
 <ul class="itemizedlist">
  <li class="listitem">
   <span class="simpara">
    Verbesserte persistente (dauerhafte) Verbindungen
   </span>
  </li>
  <li class="listitem">
   <span class="simpara">
    Die spezielle Funktion <span class="function"><a href="mysqli-result.fetch-all.php" class="function">mysqli_fetch_all()</a></span>
   </span>
  </li>
  <li class="listitem">
   <span class="simpara">
    Aufrufe für Leistungsstatistiken:
    <span class="function"><a href="function.mysqli-get-client-stats.php" class="function">mysqli_get_client_stats()</a></span>,
    <span class="function"><a href="mysqli.get-connection-stats.php" class="function">mysqli_get_connection_stats()</a></span>
   </span>
  </li>
 </ul>
 <p class="simpara">
  Mit Hilfe der Leistungsstatistiken können Leistungsengpässe sehr gut erkannt
  werden.
 </p>
 <p class="simpara">
  In Verbindung mit der Erweiterung <code class="literal">mysqli</code> ermöglicht der
  MySQL Native Driver auch persistente Verbindungen.
 </p>
 <p class="simpara">
  <strong>SSL-Unterstützung</strong>
 </p>
 <p class="simpara">
  Der MySQL Native Driver unterstützt SSL.
 </p>
 <p class="simpara">
  <strong>Unterstützung komprimierter Protokolle</strong>
 </p>
 <p class="simpara">
  Der MySQL Native Driver unterstützt das komprimierte
  Client-Server-Protokoll. Wenn die Erweiterung <code class="literal">ext/mysqli</code>
  so konfiguriert ist, dass sie den MySQL Native Driver verwendet, kann sie
  dieses Feature ebenfalls nutzen. Es ist zu beachten, dass
  <code class="literal">PDO_MYSQL</code> die Komprimierung in Verbindung mit mysqlnd
  <em>NICHT</em> unterstützt.
 </p>
 <p class="simpara">
  <strong>Unterstützung für benannte Pipes</strong>
 </p>
 <p class="simpara">
  In Windows-Umgebungen können benannte Pipes für Verbindungen verwendet
  werden.
 </p>
</div>
<?php manual_footer($setup); ?>