Estatísticas
O Driver Nativo MySQL contém suporte para coleta de estatísticas sobre a comunicação entre o cliente e o servidor. As estatísticas recolhidas são de dois tipos principais:
- Estatísticas de cliente
- Estatísticas de conexão
Ao usar a extensão mysqli, essas estatísticas poderão ser obtidas através de duas chamadas de API:
Note: As estatísticas são agregadas entre todas as extensões que utilizam o Driver Nativo MySQL. Por exemplo, se a extensão mysqli e o driver PDO MySQL estiverem ambos configurados para usar MySQLnd, as chamadas de função de mysqli e chamadas de métodos do PDO afetarão as estatísticas. Não há como saber o quanto uma determinada chamada de API de qualquer extensão que tenha sido compilada contra o Driver Nativo MySQL tenha impactado uma determinada estatística.
Obtendo estatísticas
Estatísticas do cliente podem ser obtidas chamando a função mysqli_get_client_stats()
Estatísticas de conexão podem ser obtidas chamando a função mysqli_get_connection_stats().
Ambas as funções retornam um array associativo, onde o nome da estatística é a chave para o dado estatístico correspondente.
Estatísticas do Driver Nativo MySQL
A maior parte das estatíticas são associadas a uma conexão mas algumas são associadas ao processo, e neste caso isto será mencionado no texto.
As seguintes estatísticas são produzidas pelo Driver Nativo MySQL:
-
Estatísticas Relacionadas à Rede
bytes_sent
- Número de bytes enviados do PHP para o servidor MySQL.
bytes_received
- Número de bytes recebidos do servidor MySQL.
packets_sent
- Número de pacotes enviados pelo protocolo Cliente Servidor do MySQL.
packets_received
- Número de pacotes recebidos pelo protocolo Cliente Servidor do MySQL.
protocol_overhead_in
-
Sobrecarga do protocolo Cliente Servidor do MySQL em bytes para o tráfego de entrada.
Atualmente apenas o Cabeçalho do Pacote (4 bytes) é considerado como sobrecarga.
protocol_overhead_in = packets_received * 4
protocol_overhead_out
-
Sobrecarga do protocolo Cliente Servidor do MySQL em bytes para o tráfego de saída.
Atualmente apenas o Cabeçalho do Pacote (4 bytes) é considerado como sobrecarga.
protocol_overhead_out = packets_received * 4
bytes_received_ok_packet
-
Tamanho total em bytes de pacotes OK recebidos pelo protocolo Cliente Servidor do MySQL.
Pacotes OK podem conter uma mensagem de status.
O comprimento da mensagem de status pode variar e portanto o tamanho de um
pacote OK não é fixo.
Note: O tamanho total em bytes inclui o tamanho do pacote de cabeçalho. (4 bytes, consulte sobre sobrecarga do protocolo)
packets_received_ok
- Número de pacotes OK recebidos pelo protocolo Cliente Servidor do MySQL.
bytes_received_eof_packet
-
Tamanho total em bytes de pacotes EOF recebidos pelo protocolo Cliente Servidor do MySQL.
EOF pode variar em tamanho dependendo da versão do servidor.
Além disso, EOF pode transportar uma mensagem de erro.
Note: O tamanho total em bytes inclui o tamanho do pacote de cabeçalho. (4 bytes, consulte sobre sobrecarga do protocolo)
packets_received_eof
- Número de pacotes EOF recebidos pelo protocolo Cliente Servidor do MySQL. Como acontece com outras estatísticas de pacotes, o número de pacotes será incrementado mesmo se o PHP não receber o pacote esperado mas, por exemplo, receber uma mensagem de erro.
bytes_received_rset_header_packet
-
Tamanho total em bytes dos pacotes de cabeçalho do conjunto de resultados
recebido pelo protocolo Cliente Servidor do MySQL.
O tamanho dos pacotes varia dependendo da carga
(
LOAD LOCAL INFILE
,INSERT
,UPDATE
,SELECT
, mensagem de erro).Note: O tamanho total em bytes inclui o tamanho do pacote de cabeçalho. (4 bytes, consulte sobre sobrecarga do protocolo)
packets_received_rset_header
- Número de pacotes de cabeçalho de conjunto de resultados recebidos pelo protocolo Cliente Servidor do MySQL.
bytes_received_rset_field_meta_packet
-
Tamanho total em bytes de pacotes de metadados (informação de campo) de conjunto de resultados
recebidos pelo protocolo Cliente Servidor do MySQL.
É evidente que o tamanho varia com os campos no conjunto de resultados.
O pacotes também pode transportar um pacote de erro ou de EOF em caso de
COM_LIST_FIELDS.
Note: O tamanho total em bytes inclui o tamanho do pacote de cabeçalho. (4 bytes, consulte sobre sobrecarga do protocolo)
packets_received_rset_field_meta
- Número de pacotesde metadados (informação de campo) de conjunto de resultados recebidos pelo protocolo Cliente Servidor do MySQL.
bytes_received_rset_row_packet
-
Tamanho total em bytes dos pacotes de dados de registros do conjunto de resultados
recebidos pelo protocolo Cliente Servidor do MySQL.
O pacote também pode transportar uma mensagem de erro ou de EOF.
Pode-se computar o número de pacotes de erro e de EOF subtraindo-se
rows_fetched_from_server_normal
erows_fetched_from_server_ps
debytes_received_rset_row_packet
.Note: O tamanho total em bytes inclui o tamanho do pacote de cabeçalho. (4 bytes, consulte sobre sobrecarga do protocolo)
packets_received_rset_row
- Número de pacotes de dados de registros do conjunto de resultados recebidos pelo protocolo Cliente Servidor do MySQL.
bytes_received_prepare_response_packet
-
Tamanho total em bytes dos pacotes de Inicialização OK para Instruções Preparadas (pacotes de
inicialização de instrução preparada) recebidos pelo protocolo Cliente Servidor do MySQL.
O pacote também pode transportar um erro.
O tamanho do pacote depende da versão MySQL.
Note: O tamanho total em bytes inclui o tamanho do pacote de cabeçalho. (4 bytes, consulte sobre sobrecarga do protocolo)
packets_received_prepare_response
- Número de pacotes de inicialização de instruções preparadas recebidos pelo protocolo Cliente Servidor do MySQL.
bytes_received_change_user_packet
-
Tamanho total em bytes de pacotes COM_CHANGE_USER recebidos pelo protocolo Cliente Servidor do MySQL.
O pacote também pode transportar um erro ou um EOF.
Note: O tamanho total em bytes inclui o tamanho do pacote de cabeçalho. (4 bytes, consulte sobre sobrecarga do protocolo)
packets_received_change_user
- Número de pacotes COM_CHANGE_USER recebidos pelo protocolo Cliente Servidor do MySQL.
packets_sent_command
- Número de comandos do protocolo Cliente Servidor do MySQL enviados pelo PHP ao MySQL. Não há como saber quais foram os comandos específicos e quantos deles foram enviados.
bytes_received_real_data_normal
-
Número de bytes dos dados reais buscados pelo cliente PHP vindos do
mysqlnd
usando o protocolo de texto. Este é o tamanho dos dados reais contidos nos conjuntos de resultados que não se originaram de instruções preparadas e que foram buscados pelo cliente PHP. Observe que embora um conjunto de resultados completo possa ter sido puxado do MySQL pelomysqlnd
, esta estatística apenas conta dados reais puxados a partir domysqlnd
pelo cliente PHP.A seguir é apresentado um exemplo de sequência de código que irá incrementar o valor:
$mysqli = new mysqli(); $res = $mysqli->query("SELECT 'abc'"); $res->fetch_assoc(); $res->close();
Entretanto, a estatística não será incrementada se o conjunto de resultados estiver sujeito a buffer no lado do cliente mas não for buscado, como no exemplo a seguir:
$mysqli = new mysqli(); $res = $mysqli->query("SELECT 'abc'"); $res->close();
bytes_received_real_data_ps
-
Número de bytes dos dados reais buscados pelo cliente PHP vindos do
mysqlnd
usando o protocolo de instruções preparadas. Este é o tamanho dos dados reais contidos nos conjuntos de resultados que se originaram de instruções preparadas e que foram buscados pelo cliente PHP. O valor não será incrementado se o conjunto de resultados não for subsequentemente lido pelo cliente PHP. Observe que embora um conjunto de resultados completo possa ter sido puxado do MySQL pelomysqlnd
, esta estatística apenas conta dados reais puxados a partir domysqlnd
pelo cliente PHP. Consulte tambémbytes_received_real_data_normal
.
-
Estatísticas Relacionadas ao Conjunto de Resultados
result_set_queries
-
Número de consultas que geraram um conjunto de resultados.
Exemplos de consultas que geram um conjunto de resultados:
SELECT
,SHOW
. A estatística não será incrementada se ocorrer um erro ao ler o pacote de cabeçalho do conjunto de resultados.Note: Esta estatística pode ser usada como uma medição indireta do número de consultas que o PHP enviou ao MySQL. Isto pode ajudar a identificar um cliente que causa uma carga alta no banco de dados.
non_result_set_queries
-
Número de consultas que não geraram um conjunto de resultados.
Exemplos de consultas que não geram um conjunto de resultados:
INSERT
,UPDATE
,LOAD DATA
. A estatística não será incrementada se ocorrer um erro ao ler o pacote de cabeçalho do conjunto de resultados.Note: Esta estatística pode ser usada como uma medição indireta do número de consultas que o PHP enviou ao MySQL. Isto pode ajudar a identificar um cliente que causa uma carga alta no banco de dados.
no_index_used
-
Número de consultas que geraram um conjunto de resultados mas não usaram um índice.
(Consulte também a opção de início do mysqld
--log-queries-not-using-indexes
).Note: Essas consultas podem ser reportadas através de uma exceção com
mysqli_report(MYSQLI_REPORT_INDEX);
. É possível reportá-las também através de um alerta commysqli_report(MYSQLI_REPORT_INDEX ^ MYSQLI_REPORT_STRICT);
. bad_index_used
-
Número de consultas que geraram um conjunto de resultados e não usaram um índice bom.
(Consulte também a opção de início do mysqld
--log-slow-queries
).Note: Essas consultas podem ser reportadas através de uma exceção com
mysqli_report(MYSQLI_REPORT_INDEX);
. É possível reportá-las também através de um alerta commysqli_report(MYSQLI_REPORT_INDEX ^ MYSQLI_REPORT_STRICT);
. slow_queries
-
Instruções SQL que levaram mais de
long_query_time
segundos para execução e requereram que pelo menosmin_examined_row_limit
registros fossem examinados.CautionNão reportada através de mysqli_report().
buffered_sets
-
Número de conjuntos de resultados em buffer retornados por consultas
normais (isto é, não por via de instrução preparada).
Exemplos de chamadas API que armazenarão conjuntos de resultados em buffer no cliente: mysqli_query(), mysqli_store_result(), mysqli_stmt_get_result()
unbuffered_sets
-
Número de conjuntos de resultados sem buffer retornados por consultas
normais (isto é, não por via de instrução preparada).
Exemplos de chamadas API que não armazenarão conjuntos de resultados em buffer no cliente: mysqli_use_result()
ps_buffered_sets
-
Número de conjuntos de resultados em buffer retornados por instruções preparadas.
Exemplos de chamadas API que armazenarão conjuntos de resultados em buffer no cliente: mysqli_stmt_store_result()
ps_unbuffered_sets
- Número de conjuntos de resultados sem buffer retornados por instruções preparadas. Por padrão, instruções preparadas não são armazenadas em buffer, portanto a maioria das instruções preparadas será considerada nesta estatísitica.
flushed_normal_sets
-
Número de conjuntos de resultados retornados por consultas
normais (isto é, não por via de instrução preparada)
com dados não lidos que foram silenciosamente descarregados.
Note: Os descarregamento ocorre somente com conjuntos de resultados sem buffer. Conjuntos de resultados sem buffer devem ser buscados integralmente antes que uma nova consulta possa ser executada na conexão, caso contrário o MySQL lançará um erro. Se a aplicação não buscar todos os registros de um conjunto de resultados sem buffer, o mysqlnd não busca implicitamente o conjunto de resultados para limpar a linha de dados. Consulta também
rows_skipped_normal
,rows_skipped_ps
.Algumas causas possíveis para um descarregamento implícito:
- Aplicação cliente com falhas
- Cliente parou de ler depois de ter encontrado o que estava procurando mas fez o MySQL calcular mais registros que o necessário
- Aplicação cliente parou inesperadamente
flushed_ps_sets
-
Número de conjuntos de resultados de instruções preparadas
com dados não lidos que foram silenciosamente descarregados.
Note: Os descarregamento ocorre somente com conjuntos de resultados sem buffer. Conjuntos de resultados sem buffer devem ser buscados integralmente antes que uma nova consulta possa ser executada na conexão, caso contrário o MySQL lançará um erro. Se a aplicação não buscar todos os registros de um conjunto de resultados sem buffer, o mysqlnd não busca implicitamente o conjunto de resultados para limpar a linha de dados. Consulta também
rows_skipped_normal
,rows_skipped_ps
.Algumas causas possíveis para um descarregamento implícito:
- Aplicação cliente com falhas
- Cliente parou de ler depois de ter encontrado o que estava procurando mas fez o MySQL calcular mais registros que o necessário
- Aplicação cliente parou inesperadamente
ps_prepared_never_executed
- Número de intruções preparadas mas nunca executadas.
ps_prepared_once_executed
- Número de intruções preparadas executadas apenas uma vez.
rows_fetched_from_server_normal
rows_fetched_from_server_ps
-
Número total de registros do conjunto de resultados buscados do servidor.
Isto inclui os registros que não foram lidos pelo cliente mas
foram buscados implicitamente devido a conjuntos de resultados sem buffer descarregados.
Consulte também
packets_received_rset_row
. rows_buffered_from_client_normal
-
Número total de registros em buffer originários de uma consulta normal.
Este é o número de registros que foram buscados do MySQL e armazenados em buffer no cliente.
Exemplos de consultas que irão armazenar resultados em buffer:
rows_buffered_from_server_ps
-
O mesmo que
rows_buffered_from_client_normal
, porém para instruções preparadas. rows_fetched_from_client_normal_buffered
- Número total de registros buscados pelo cliente a partir de um conjunto de resultados em buffer criado por uma consulta normal.
rows_fetched_from_client_ps_buffered
- Número total de registros buscados pelo cliente a partir de um conjunto de resultados em buffer criado por uma instrução preparada.
rows_fetched_from_client_normal_unbuffered
- Número total de registros buscados pelo cliente a partir de um conjunto de resultados sem buffer criado por uma consulta normal.
rows_fetched_from_client_ps_unbuffered
- Número total de registros buscados pelo cliente a partir de um conjunto de resultados sem buffer criado por uma instrução preparada.
rows_fetched_from_client_ps_cursor
- Número total de registros buscados pelo cliente a partir de um cursor criado por uma instrução preparada.
rows_skipped_normal
rows_skipped_ps
- Reservada para uso futuro (atualmente não suportada).
copy_on_write_saved
copy_on_write_performed
- Esta é uma estatística cujo escopo está no nível de processo. Com o mysqlnd, variáveis retornadas pelas extensões apontam para os buffers de resultados da rede interna do mysqlnd. Se os dados não foram modificados, os dados buscados são mantidos apenas uma vez na memória. Entretanto, qualquer modificação nos dados irá requerer que o mysqlnd realize uma operação de cópia-na-escrita.
explicit_free_result
implicit_free_result
- Esta é uma estatística cujo escopo está no nível de conexão e de processo. Número total de conjuntos de resultados liberados.
proto_text_fetched_null
-
Número total de colunas do tipo
MYSQL_TYPE_NULL
buscadas por uma consulta normal (protocolo de texto MySQL). proto_binary_fetched_null
-
Número total de colunas do tipo
MYSQL_TYPE_NULL
buscadas por uma instrução preparada (protocolo binário MySQL). proto_text_fetched_bit
-
Número total de colunas do tipo
MYSQL_TYPE_BIT
buscadas por uma consulta normal (protocolo de texto MySQL). proto_binary_fetched_bit
-
Número total de colunas do tipo
MYSQL_TYPE_BIT
buscadas por uma instrução preparada (protocolo binário MySQL). proto_text_fetched_tinyint
-
Número total de colunas do tipo
MYSQL_TYPE_TINY
buscadas por uma consulta normal (protocolo de texto MySQL). proto_binary_fetched_tinyint
-
Número total de colunas do tipo
MYSQL_TYPE_TINY
buscadas por uma instrução preparada (protocolo binário MySQL). proto_text_fetched_short
-
Número total de colunas do tipo
MYSQL_TYPE_SHORT
buscadas por uma consulta normal (protocolo de texto MySQL). proto_binary_fetched_short
-
Número total de colunas do tipo
MYSQL_TYPE_SHORT
buscadas por uma instrução preparada (protocolo binário MySQL). proto_text_fetched_int24
-
Número total de colunas do tipo
MYSQL_TYPE_INT24
buscadas por uma consulta normal (protocolo de texto MySQL). proto_binary_fetched_int24
-
Número total de colunas do tipo
MYSQL_TYPE_INT24
buscadas por uma instrução preparada (protocolo binário MySQL). proto_text_fetched_int
-
Número total de colunas do tipo
MYSQL_TYPE_LONG
buscadas por uma consulta normal (protocolo de texto MySQL). proto_binary_fetched_int
-
Número total de colunas do tipo
MYSQL_TYPE_LONG
buscadas por uma instrução preparada (protocolo binário MySQL). proto_text_fetched_bigint
-
Número total de colunas do tipo
MYSQL_TYPE_LONGLONG
buscadas por uma consulta normal (protocolo de texto MySQL). proto_binary_fetched_bigint
-
Número total de colunas do tipo
MYSQL_TYPE_LONGLONG
buscadas por uma instrução preparada (protocolo binário MySQL). proto_text_fetched_decimal
-
Número total de colunas dos tipos
MYSQL_TYPE_DECIMAL
ouMYSQL_TYPE_NEWDECIMAL
buscadas por uma consulta normal (protocolo de texto MySQL). proto_binary_fetched_decimal
-
Número total de colunas dos tipos
MYSQL_TYPE_DECIMAL
ouMYSQL_TYPE_NEWDECIMAL
buscadas por uma instrução preparada (protocolo binário MySQL). proto_text_fetched_float
-
Número total de colunas do tipo
MYSQL_TYPE_FLOAT
buscadas por uma consulta normal (protocolo de texto MySQL). proto_binary_fetched_float
-
Número total de colunas do tipo
MYSQL_TYPE_FLOAT
buscadas por uma instrução preparada (protocolo binário MySQL). proto_text_fetched_double
-
Número total de colunas do tipo
MYSQL_TYPE_DOUBLE
buscadas por uma consulta normal (protocolo de texto MySQL). proto_binary_fetched_double
-
Número total de colunas do tipo
MYSQL_TYPE_DOUBLE
buscadas por uma instrução preparada (protocolo binário MySQL). proto_text_fetched_date
-
Número total de colunas do tipo
MYSQL_TYPE_DATE
, orMYSQL_TYPE_NEWDATE
buscadas por uma consulta normal (protocolo de texto MySQL). proto_binary_fetched_date
-
Número total de colunas do tipo
MYSQL_TYPE_DATE
, orMYSQL_TYPE_NEWDATE
buscadas por uma instrução preparada (protocolo binário MySQL). proto_text_fetched_year
-
Número total de colunas do tipo
MYSQL_TYPE_YEAR
buscadas por uma consulta normal (protocolo de texto MySQL). proto_binary_fetched_year
-
Número total de colunas do tipo
MYSQL_TYPE_YEAR
buscadas por uma instrução preparada (protocolo binário MySQL). proto_text_fetched_time
-
Número total de colunas do tipo
MYSQL_TYPE_TIME
buscadas por uma consulta normal (protocolo de texto MySQL). proto_binary_fetched_time
-
Número total de colunas do tipo
MYSQL_TYPE_TIME
buscadas por uma instrução preparada (protocolo binário MySQL). proto_text_fetched_datetime
-
Número total de colunas do tipo
MYSQL_TYPE_DATETIME
buscadas por uma consulta normal (protocolo de texto MySQL). proto_binary_fetched_datetime
-
Número total de colunas do tipo
MYSQL_TYPE_DATETIME
buscadas por uma instrução preparada (protocolo binário MySQL). proto_text_fetched_timestamp
-
Número total de colunas do tipo
MYSQL_TYPE_TIMESTAMP
buscadas por uma consulta normal (protocolo de texto MySQL). proto_binary_fetched_timestamp
-
Número total de colunas do tipo
MYSQL_TYPE_TIMESTAMP
buscadas por uma instrução preparada (protocolo binário MySQL). proto_text_fetched_string
-
Número total de colunas dos tipos
MYSQL_TYPE_STRING
,MYSQL_TYPE_VARSTRING
ouMYSQL_TYPE_VARCHAR
buscadas por uma consulta normal (protocolo de texto MySQL). proto_binary_fetched_string
-
Número total de colunas dos tipos
MYSQL_TYPE_STRING
,MYSQL_TYPE_VARSTRING
ouMYSQL_TYPE_VARCHAR
buscadas por uma instrução preparada (protocolo binário MySQL). proto_text_fetched_blob
-
Número total de colunas dos tipos
MYSQL_TYPE_TINY_BLOB
,MYSQL_TYPE_MEDIUM_BLOB
,MYSQL_TYPE_LONG_BLOB
ouMYSQL_TYPE_BLOB
buscadas por uma consulta normal (protocolo de texto MySQL). proto_binary_fetched_blob
-
Número total de colunas dos tipos
MYSQL_TYPE_TINY_BLOB
,MYSQL_TYPE_MEDIUM_BLOB
,MYSQL_TYPE_LONG_BLOB
ouMYSQL_TYPE_BLOB
buscadas por uma instrução preparada (protocolo binário MySQL). proto_text_fetched_enum
-
Número total de colunas do tipo
MYSQL_TYPE_ENUM
buscadas por uma consulta normal (protocolo de texto MySQL). proto_binary_fetched_enum
-
Número total de colunas do tipo
MYSQL_TYPE_ENUM
buscadas por uma instrução preparada (protocolo binário MySQL). proto_text_fetched_set
-
Número total de colunas do tipo
MYSQL_TYPE_SET
buscadas por uma consulta normal (protocolo de texto MySQL). proto_binary_fetched_set
-
Número total de colunas do tipo
MYSQL_TYPE_SET
buscadas por uma instrução preparada (protocolo binário MySQL). proto_text_fetched_geometry
-
Número total de colunas do tipo
MYSQL_TYPE_GEOMETRY
buscadas por uma consulta normal (protocolo de texto MySQL). proto_binary_fetched_geometry
-
Número total de colunas do tipo
MYSQL_TYPE_GEOMETRY
buscadas por uma instrução preparada (protocolo binário MySQL). proto_text_fetched_other
-
Número total de colunas dos tipos
MYSQL_TYPE_*
não listadas previamente e buscadas por uma consulta normal (protocolo de texto MySQL).Note: Em teoria, deveria ser sempre
0
. proto_binary_fetched_other
-
Número total de colunas dos tipos
MYSQL_TYPE_*
não listadas previamente e buscadas por uma instrução preparada (protocolo binário MySQL).Note: Em teoria, deveria ser sempre
0
.
-
Estatísticas Relacionadas a Conexões
connect_success
-
Número total de tentativas bem sucedidas de conexões.
Note:
connect_success
contém a soma de tentativas bem sucedidas de conexões persistentes e não persistentes. Portanto, o número de tentativas bem sucedidas de conexões não persistentes éconnect_success - pconnect_success
. pconnect_success
- Número total de tentativas bem sucedidas de conexões persistentes.
connect_failure
- Número total de tentativas falhadas de conexões.
reconnect
- Esta é uma estatística cujo escopo está no nível de processo.
active_connections
-
Esta é uma estatística cujo escopo está no nível de processo.
Número total de conexões ativas, persistentes e não persistentes.
Note: Número total de conexões ativas não persistentes é
active_connections - active_persistent_connections
. active_persistent_connections
- Esta é uma estatística cujo escopo está no nível de processo. Número total de conexões ativas persistentes.
explicit_close
-
Número total de conexões fechadas explicitamente.
Example #1 Exemplos de trechos de código que causam um fechamento explícito
-
$link = new mysqli(/* ... */); $link->close(/* ... */);
-
$link = new mysqli(/* ... */); $link->connect(/* ... */);
-
implicit_close
-
Número total de conexões fechadas implicitamente.
Example #2 Exemplos de trechos de código que causam um fechamento implícito
-
$link = new mysqli(/* ... */); $link->real_connect(/* ... */);
-
unset($link)
- Conexão persistente: conexão em fila foi criada com real_connect e podem haver opções desconhecidas definidas - fecha implicitamente para evitar o retorno de uma conexão com opções desconhecidas
- Conexão persistente: ping/change_user falha e a extensão mysqli fecha a conexão
- Fim de execução de script: fecha conexões que não foram fechadas pelo usuário
-
disconnect_close
-
Falhas de conexão indicadas pela chamada API C
mysql_real_connect
durante uma tentativa de se estabalecer uma conexão. in_middle_of_command_close
-
Esta é uma estatística cujo escopo está no nível de processo.
Uma conexão foi fechada no meio de uma execução de comando
(conjuntos de resultados não buscados, após enviar uma consulta e
antes de receber uma resposta, durante a busca de dados, enquanto
dados são transferidos com LOAD DATA).
Warning
A menos que consultas assíncronas sejam usadas, isto só deve acontecer se a aplicação PHP terminar inesperadamente e o PHP fechar a conexão automaticamente.
init_command_executed_count
-
Número total de execuções do comando init.
Por exemplo:
mysqli_options(MYSQLI_INIT_COMMAND , $value)
. O número total de execuções bem sucedidas éinit_command_executed_count - init_command_failed_count
. init_command_failed_count
- Número total de comandos init falhados.
-
Estatísticas Relacionadas aos Comandos
com_quit
com_init_db
com_query
com_field_list
com_create_db
com_drop_db
com_refresh
com_shutdown
com_statistics
com_process_info
com_connect
com_process_kill
com_debug
com_ping
com_time
com_delayed_insert
com_change_user
com_binlog_dump
com_table_dump
com_connect_out
com_register_slave
com_stmt_prepare
com_stmt_execute
com_stmt_send_long_data
com_stmt_close
com_stmt_reset
com_stmt_set_option
com_stmt_fetch
com_daemon
-
Número total de tentativas de envio de um certo comando
COM_*
do PHP para o MySQL. As estatísticas são incrementadas após verificação da linha de dados e imediatamente antes do envio do pacote correspondente do protocolo Cliente Servidor do MySQL.CautionSe o MySQLnd falhar ao enviar o pacote pela rede, a estatística não será decrementada. Em caso de falha, o MySQLnd emite um alerta do PHP
Error while sending %s packet. PID=%d.
Example #3 Exemplos de uso
-
Verificar se o PHP envia certos comandos ao MySQL, por exemplo, verificar se o cliente envia
COM_PROCESS_KILL
-
Calcular o número médio de execuções de instruções preparadas comparando
COM_EXECUTE
comCOM_PREPARE
-
Verificar se o PHP executou alguma instrução SQL não preparada observando se
COM_QUERY
é igual a zero -
Identificar scripts PHP que executam um número excessivo de instruções SQL, verificando
COM_QUERY
eCOM_EXECUTE
-
COM_*
-
Estatísticas Miscelâneas
explicit_stmt_close
implicit_stmt_close
-
Esta é uma estatística cujo escopo está no nível de processo.
Número total de instruções preparadas fechadas.
Note: Uma instrução preparada é sempre fechada explicitamente. O único momento em que ela é fechaada implicitamente é quando sua preparação falha.
mem_emalloc_count
mem_emalloc_ammount
mem_ecalloc_count
mem_ecalloc_ammount
mem_realloc_count
mem_realloc_ammount
mem_efree_count
mem_malloc_count
mem_malloc_ammount
mem_calloc_count
mem_calloc_ammount
mem_ealloc_count
mem_ealloc_ammount
mem_free_count
- Esta é uma estatística cujo escopo está no nível de processo. Chamadas de gerenciamento de memória.
command_buffer_too_small
-
Número de extensões de buffer de comandos de rede ao enviar comandos do
PHP para o MySQL.
MySQLnd aloca um buffer interno de comando/rede de
mysqlnd.net_cmd_buffer_size
bytes para cada conexão.
Se um comando do protocolo Cliente Servidor do MySQL,
por exemplo
COM_QUERY
(consulta normal), não couber no buffer, o MySQLnd aumentará o buffer para o tamanho necessário para envio do comando. Sempre que o buffer for estendido para uma conexão,command_buffer_too_small
será incrementada em uma unidade. Se o MySQLnd tiver que aumentar o buffer para além do seu tamanho inicial de mysqlnd.net_cmd_buffer_size bytes para quase todas as conexões, deve ser considerado aumento do tamanho padrão para evitar realocações. connection_reused
- O número total de vezes em que uma conexão persistente foi reutilizada.