Auswahl einer Bibliothek

Die PHP-Erweiterungen mysqli und PDO_MySQL sind schlanke Wrapper, die auf einer C-Clientbibliothek aufbauen. Es kann eine der beiden Bibliotheken mysqlnd und libmysqlclient verwendet werden. Die Bibliothek muss beim Kompilieren ausgewählt werden.

Die Bibliothek mysqlnd ist Teil der PHP-Distribution. Sie bietet Funktionen wie Lazy Connections und Abfrage-Caching, Funktionen, die mit libmysqlclient nicht verfügbar sind, weshalb dringend empfohlen wird, die eingebaute Bibliothek mysqlnd zu verwenden. Die mysqlnd-Dokumentation enthält zusätzliche Details und eine Auflistung der Funktionen, die sie bietet.

Beispiel #1 Konfigurationsoptionen für die Verwendung von mysqlnd oder libmysqlclient

// Empfohlen, kompiliert mit mysqlnd
$ ./configure --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd

// Alternativ empfohlen, kompiliert mit mysqlnd
$ ./configure --with-mysqli --with-pdo-mysql

// Nicht empfohlen, kompiliert mit libmysqlclient
$ ./configure --with-mysqli=/path/to/mysql_config --with-pdo-mysql=/path/to/mysql_config

Vergleich der Merkmale der Bibliotheken

Es wird empfohlen, die Bibliothek mysqlnd anstelle der Client-Server-Bibliothek von MySQL (libmysqlclient) zu verwenden. Beide Bibliotheken werden unterstützt und ständig verbessert.

  MySQL native driver (mysqlnd) Client-Server-Bibliothek von MySQL (libmysqlclient)
Teil der PHP-Distribution Ja Nein
PHP-Version der Einführung 5.3.0 N/A
Lizenz PHP-Lizenz 3.01 Duale Lizenz
Entwicklungsstatus Aktiv Aktiv
Lebenszyklus Kein Ende angekündigt Kein Ende angekündigt
Voreinstellung beim Kompilieren (bei allen MySQL-Erweiterungen) Ja Nein
Unterstützung des Komprimierungsprotokolls Ja Ja
SSL-Unterstützung Ja Ja
Unterstützung von benannten Pipes Ja Ja
Nicht-blockierende, asynchrone Abfragen Ja Nein
Statistiken zur Leistung Ja Nein
LOAD LOCAL INFILE berücksichtigt die Direktive open_basedir Ja Nein
Verwendet das PHP-eigene Speicherverwaltungssystem (hält sich z. B. an die PHP-Speichergrenzen) Ja Nein
Rückgabe numerischer Spalten als Doubles (COM_QUERY) Ja Nein
Rückgabe numerischer Spalten als Zeichenketten (COM_QUERY) Ja Ja
Plugin-API Ja Eingeschränkt
Automatische Wiederherstellung der Verbindung Nein Optional
add a note add a note

User Contributed Notes 1 note

up
-4
siguza at siguza dot net dot IGNORETHIS
9 years ago
If you're using named pipes under Windows, you should NOT use mysqlnd.
Tested with PHP 5.6.4, libmysqlclient gave me results of about 20ms on a page with 50 queries while mysqlnd was over 3000ms!
To Top