O comportamento destas funções é afetado pelas configurações do php.ini.
| Nome | Padrão | Modificável | Registro de Alterações | 
|---|---|---|---|
| mysqlnd.collect_statistics | "1" | INI_SYSTEM | |
| mysqlnd.collect_memory_statistics | "0" | INI_SYSTEM | |
| mysqlnd.debug | "" | INI_SYSTEM | |
| mysqlnd.log_mask | 0 | INI_ALL | |
| mysqlnd.mempool_default_size | 16000 | INI_ALL | |
| mysqlnd.net_read_timeout | "86400" | INI_ALL | Antes do PHP 7.2.0 o padrão era "31536000"
       e a mutabilidade era INI_SYSTEM | 
| mysqlnd.net_cmd_buffer_size | "4096" | INI_SYSTEM | |
| mysqlnd.net_read_buffer_size | "32768" | INI_SYSTEM | |
| mysqlnd.sha256_server_public_key | "" | INI_PERDIR | |
| mysqlnd.trace_alloc | "" | INI_SYSTEM | |
| mysqlnd.fetch_data_copy | 0 | INI_ALL | Removida a partir do PHP 8.1.0 | 
Aqui está uma breve explicação das diretivas de configuração.
mysqlnd.collect_statistics
     bool
    
      Permite a coleta de várias estatísticas de clientes que podem ser
      acessadas através de mysqli_get_client_stats() e
      mysqli_get_connection_stats()
      e também são mostradas na
      seção mysqlnd da saída da
      função phpinfo().
     
Esta configuração ativa todas as estatísticas do Driver Nativo MySQL exceto aquelas relacionadas ao gerenciamento de memória.
mysqlnd.collect_memory_statistics
     bool
    
      Permite a coleta de várias estatísticas de clientes que podem ser
      acessadas através de mysqli_get_client_stats() e
      mysqli_get_connection_stats()
      e também são mostradas na
      seção mysqlnd da saída da
      função phpinfo().
     
Esta definição de configuração ativa as estatísticas de gerenciamento de memória dentro do conjunto geral de estatísticas do Driver Nativo MySQL.
mysqlnd.debug string
    
      Grava a comunicação de todas as extenões que usam
      mysqlnd para o arquivo de registro especificado.
     
      O formato da diretiva é mysqlnd.debug =
      "opção1[,parâmetro_opção1][:opção2[,parâmetro_opção2]]".
     
As opções para a string de formato são as seguintes:
A[,arquivo] - Acrescenta saída de rastreamento ao arquivo especificado. Também garante que os dados sejam gravados após cada gravação. Isso é feito fechando e reabrindo o arquivo de rastreamento (isso é lento). Isso ajuda a garantir um arquivo de registro completo caso o aplicativo falhe.
a[,arquivo] - Acrescenta saída de rastreamento ao arquivo especificado.
d - Ativa a saída de macros DBUG_<N> para o estado atual. Pode ser seguido por uma lista de palavras-chave que seleciona a saída apenas para as macros DBUG com essa palavra-chave. Uma lista vazia de palavras-chave implica em saída para todas as macros.
f[,funções] - Limita as ações do depurador à lista de funções especificada. Uma lista vazia de funções implica em que todas as funções são selecionadas.
F - Marca cada linha de saída do depurador com o nome do arquivo de origem que contém a macro que causa a saída.
i - Marca cada linha de saída do depurador com o PID do processo atual.
L - Marca cada linha de saída do depurador com o nome do número da linha do arquivo de origem da macro que causa a saída.
n - Marca cada linha de saída do depurador com a profundidade de aninhamento da função atual.
o[,arquivo] - Similar a a[,arquivo] mas sobrescreve o arquivo antigo, e não anexa.
O[,arquivo] - Similar a A[,arquivo] mas sobrescreve o arquivo antigo, e não anexa.
t[,N] - Ativa o rastreamento de fluxo de controle de função. A profundidade máxima de aninhamento é especificada por N e o padrão é 200.
x - Este opção ativa a criação de perfil de código.
m - Rastreia chamadas relacionadas à alocação e desalocação de memória.
Example:
d:t:x:O,/tmp/mysqlnd.trace
Nota:
Este recurso está disponível apenas com uma compilação de depuração do PHP.
mysqlnd.log_mask
     int
    Define quais consultas serão registradas. O padrão é 0, que desativa o registro. Defina usando um número inteiro e não com constantes PHP. Por exemplo, um valor de 48 (16 + 32) registrará consultas lentas que usam 'nenhum índice bom' (SERVER_QUERY_NO_GOOD_INDEX_USED = 16) ou nenhum índice (SERVER_QUERY_NO_INDEX_USED = 32). Um valor de 2.043 (1 + 2 + 8 + ... + 1.024) registrará todos os tipos de consulta lenta.
Os tipos são os seguintes: SERVER_STATUS_IN_TRANS=1, SERVER_STATUS_AUTOCOMMIT=2, SERVER_MORE_RESULTS_EXISTS=8, SERVER_QUERY_NO_GOOD_INDEX_USED=16, SERVER_QUERY_NO_INDEX_USED=32, SERVER_STATUS_CURSOR_EXISTS=64, SERVER_STATUS_LAST_ROW_SENT=128, SERVER_STATUS_DB_DROPPED=256, SERVER_STATUS_NO_BACKSLASH_ESCAPES=512 e SERVER_QUERY_WAS_SLOW=1024.
mysqlnd.mempool_default_size
     int
    Tamanho padrão do pool de memória mysqlnd, que é usado pelos conjuntos de resultados.
mysqlnd.net_read_timeout
     int
    
      mysqlnd e a Biblioteca Cliente MySQL,
      libmysqlclient usam APIs de rede diferentes.
      mysqlnd usa fluxos PHP, enquanto
      libmysqlclient usa seus próprio encapsulador em torno
      das chamadas de rede de nível operacional. O PHP, por padrão, define um tempo
      limite de leitura de 60s para fluxos. Isso é definido via
      php.ini,
      default_socket_timeout. Esse padrão se aplica a
      todos os fluxos que não definem nenhum outro valor de tempo limite.
      mysqlnd não define nenhum outro valor e,
      portanto, conexões de consultas de longa execução podem ser desconectadas
      após default_socket_timeout segundos, resultando
      em uma mensagem de erro 2006 - MySQL Server has gone
      away
. A biblioteca cliente MySQL define um tempo limite padrão de
      24 * 3600 segundos (1 dia) e espera que outros tempos limite
      ocorram, como tempos limites de TCP/IP. mysqlnd agora
      usa o mesmo tempo limite muito longo. O valor é configurável através
      de uma nova configuração php.ini:
      mysqlnd.net_read_timeout.
      mysqlnd.net_read_timeout é usado por qualquer
      extensão (ext/mysql,
      ext/mysqli, PDO_MySQL) que
      usa mysqlnd. mysqlnd diz
      aos fluxos PHP para usar mysqlnd.net_read_timeout.
      Favor observar que pode haver diferenças sutis entre
      MYSQL_OPT_READ_TIMEOUT da Biblioteca Cliente
      MySQL e fluxos PHP, por exemplo
      MYSQL_OPT_READ_TIMEOUT está documentado para funcionar
      apenas para conexões TCP/IP e, antes do MySQL 5.1.2, apenas para
      Windows. Os fluxos PHP podem não ter essa limitação. Por favor,
      verifique a documentação dos fluxos, em caso de dúvida.
     
mysqlnd.net_cmd_buffer_size
     int
    
      mysqlnd aloca um buffer interno de comando/rede
      de mysqlnd.net_cmd_buffer_size (no
      php.ini) bytes para cada conexão. Se um
      comando do protocolo MySQL cliente-servidor, por exemplo,
      COM_QUERY (consulta normal
), não
      couber no buffer, mysqlnd aumentará o
      buffer ao tamanho necessário para enviar o comando. Sempre que o
      buffer for estendido para uma conexão,
      command_buffer_too_small será incrementado em
      um.
     
      Se mysqlnd tiver que aumentar o buffer além do
      tamanho inicial de mysqlnd.net_cmd_buffer_size
      bytes para quase todas as conexões, você deve considerar aumentar
      o tamanho padrão para evitar realocações.
     
O tamanho do buffer padrão é 4.096 bytes, que é o menor valor possível.
      O valor também pode ser definido usando mysqli_options(link,
      MYSQLI_OPT_NET_CMD_BUFFER_SIZE, size).
     
mysqlnd.net_read_buffer_size
     int
    
      Tamanho máximo do bloco de leitura em bytes ao ler o corpo de um pacote
      de comando MySQL. O protocolo cliente-servidor MySQL encapsula todos
      os seus comandos em pacotes. Os pacotes consistem em um pequeno cabeçalho e
      um corpo com a carga útil real. O tamanho do corpo está codificado no
      cabeçalho. mysqlnd lê o corpo em pedaços de
      MIN(header.size, mysqlnd.net_read_buffer_size)
      bytes. Se o corpo de um pacote for maior que
      mysqlnd.net_read_buffer_size bytes,
      mysqlnd terá que chamar read()
      múltiplas vezes.
     
      O valor também pode ser definido usando mysqli_options(link,
      MYSQLI_OPT_NET_READ_BUFFER_SIZE, size).
     
mysqlnd.sha256_server_public_key
     string
    Relacionado ao plug-in de autenticação SHA-256. Arquivo com a chave RSA pública do servidor MySQL.
Os clientes podem omitir a configuração de uma chave RSA pública, especificar a chave através desta configuração do PHP ou definir a chave em tempo de execução usando mysqli_options(). Se nenhum arquivo de chave RSA pública for fornecido pelo cliente, a chave será trocada como parte do procedimento de autenticação padrão do plug-in de autenticação SHA-256.
mysqlnd.trace_alloc
     string
    
mysqlnd.fetch_data_copy
     int
    Impõe cópia de conjuntos de resultados dos buffers internos do conjunto de resultados em variáveis PHP em vez de usar a referência padrão e a lógica de cópia na gravação. Por favor, veja as notas de implementação de gerenciamento de memória para mais detalhes.
Copiar conjuntos de resultados em vez de fazer referência a variáveis PHP permite liberar a memória ocupada pelas variáveis PHP anteriormente. Dependendo do código da API do usuário, das consultas reais do banco de dados e do tamanho de seus conjuntos de resultados, isso pode reduzir o consumo de memória do mysqlnd.
Não defina se estiver usando PDO_MySQL. PDO_MySQL ainda não foi atualizado para suportar o novo modo de busca.
Nota: Removido a partir do PHP 8.1.0
