Escolhendo uma biblioteca

As extensões mysqli e PDO_MySQL são encapsuladores leves de uma biblioteca cliente em C. As extensões podem tanto usar a biblioteca mysqlnd quanto a biblioteca libmysqlclient. Escolher uma biblioteca é uma decisão a ser tomada na compilação.

A biblioteca mysqlnd é parte da distribuição PHP. Ela oferece recursos como conexões preguiçosas e cache de consultas, que não estão disponíveis com a libmysqlclient, portanto usar a biblioteca mysqlnd interna é altamente recomendado. Consulte a documentação mysqlnd para detalhes adicionais e uma lista de recursos e funcionalidade que ela oferece.

Example #1 Comandos de configuração para usar mysqlnd ou libmysqlclient

// Recomendado, compilar com mysqlnd
$ ./configure --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd

// Alternativamente recomendado, compilar com mysqlnd
$ ./configure --with-mysqli --with-pdo-mysql

// Não recomendado, compila com libmysqlclient
$ ./configure --with-mysqli=/path/to/mysql_config --with-pdo-mysql=/path/to/mysql_config

Comparação de recursos de bibliotecas

É recomendado usar a biblioteca mysqlnd ao invés da biblioteca Cliente-Servidor do MySQL (libmysqlclient). Ambas são suportadas e estão constantemente sendo melhoradas.

  Driver nativo MySQL (mysqlnd) Biblioteca cliente-servidor MySQL (libmysqlclient)
Faz parte da distribuição PHP Sim Não
Versão do PHP em que foi introduzida 5.3.0 N/A
Licença Licença PHP 3.01 Dupla Licença
Estado de desenvolvimento Ativo Ativo
Ciclo de vida Nenhum final anunciado Nenhum final anunciado
Padrão de compilação (para todas as extensões MySQL) Sim Não
Suporte a protocolo de compressão Sim Sim
Suporte a SSL Sim Sim
Suporte a tubos nomeados Sim Sim
Consultas sem bloqueio assíncronas Sim Não
Estatísticas de desempenho Sim Não
LOAD LOCAL INFILE respeita a diretiva open_basedir Sim Não
Usa o sistema de gerenciamento de memória nativo do PHP (ex: segue os limites de memória do PHP) Sim Não
Retorna coluna numérica como dupla precisão (COM_QUERY) Sim Não
Retorna coluna numérica como string (COM_QUERY) Sim Sim
API tipo plugin Sim Limitada
Reconexão automática Não Opcional