Información general de los controladores de MySQL de PHP
PHP Manual

Elegir una biblioteca

Las extensiones de PHP mysqli, PDO_MySQL y mysql son envolturas ligeras en lo alto de una biblioteca cliente en C. Las extensiones pueden usar la biblioteca mysqlnd o la biblioteca libmysqlclient. Elegir una biblioteca es una decisión en tiempo de compilación.

La biblioteca mysqlnd es parte de la distribrución de PHP desde la versión 5.3.0. Ofrece características como conexiones lentas y almacenamiento en caché de consultas, características que no están disponibles con libmysqlclient, por lo que se recomienda encarecedamente usar la biblioteca mysqlnd interna. Véase la documentació de mysqlnd para detalles adicionales y una lista de características y funcionalidades que ofrece.

Ejemplo #1 Comandos de configuración para usar mysqlnd o libmysqlclient

// Recomendado, compila con mysqlnd
$ ./configure --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mysql=mysqlnd

// No recomendado, compila con libmysqlclient
$ ./configure --with-mysqli=/ruta/a/mysql_config --with-pdo-mysql=/ruta/a/mysql_config --with-mysql=/ruta/a/mysql_config

Comparación de las características de las bibliotecas

Se recomienda usar la biblioteca mysqlnd en lugar de la biblioteca Cliente Servidor de MySQL Client Server (libmysqlclient). Ambas bibliotecas están soportadas y siendo constantemente mejoradas.

  Controlador Nativo de MySQL (mysqlnd) Biblioteca Cliente Servidor de MySQL (libmysqlclient)
Parte de la distribución de PHP No
Versión de PHP donde se introdujo 5.3.0 N/A
Licencia Licencia PHP 3.01 Licencia Dual
Estado de desarrollo Activo Activo
Ciclo de vida Fin no anunciado Fin no anunciado
Compilación predeterminada en PHP 5.4 (para todas las extensiones MySQL) No
Compilación predeterminada en PHP 5.3 (para todas las extensiones MySQL) No
Soporte para protocolo de compresión Sí (5.3.1+)
Soporte para SSL Sí (5.3.3+)
Soporte para tubería con nombre Sí (5.3.4+)
No bloqueo, consultas asíncronas No
Estadísticas de rendimiento No
LOAD LOCAL INFILE respecito a la directiva open_basedir No
Usa el sistema de gestión de memoria nativo de PHP (p.ej., cumple los límites de memoria de PHP) No
Devuelve columnas numéricas como valores double (COM_QUERY) No
Devuelve columnas númericas como valores string (COM_QUERY)
API de complementos Limitada
Separación de lectura/escritura para Replicación MySQL Sí, con complemento No
Balace de carga Sí, con complemento No
Tolerancia a fallos Sí, con complemento No
Conexiones lentas Sí, con complemento No
Almacenamiento en caché de consultas Sí, con complemento No
Manipulación de consultas transparente (p.ej., auto-EXPLAIN o monitorización) Sí, con complemento No

Información general de los controladores de MySQL de PHP
PHP Manual