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.
Exemplo #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 |