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
10 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