Files
Leonardo Lara Rodrigues 17d859faaf sync line numbers with en rev
2026-01-23 09:16:58 -03:00

1652 lines
59 KiB
XML

<?xml version="1.0" encoding="utf-8"?><!-- EN-Revision: 9598935f21bc472f22383fb989625f0b22785331 Maintainer: leonardolara Status: ready -->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="mysqlnd.stats">
<title>Estatísticas</title>
<para>
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:
<itemizedlist>
<listitem>
<simpara>Estatísticas de cliente</simpara>
</listitem>
<listitem>
<simpara>Estatísticas de conexão</simpara>
</listitem>
</itemizedlist>
</para>
<para>
Ao usar a extensão <link linkend="book.mysqli">mysqli</link>, essas
estatísticas poderão ser obtidas através de duas chamadas de API:
<itemizedlist>
<listitem>
<simpara><function>mysqli_get_client_stats</function></simpara>
</listitem>
<listitem>
<simpara><function>mysqli_get_connection_stats</function></simpara>
</listitem>
</itemizedlist>
</para>
<note>
<simpara>
As estatísticas são agregadas entre todas as extensões que utilizam o Driver Nativo
MySQL.
Por exemplo, se a extensão <link linkend="book.mysqli">mysqli</link>
e o driver PDO MySQL estiverem ambos configurados para usar MySQLnd,
as chamadas de função de <link linkend="book.mysqli">mysqli</link> e
chamadas de métodos do PDO afetarão as estatísticas.
</simpara>
<simpara>
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.
</simpara>
</note>
<section xml:id="mysqlnd.stats.retrieve" annotations="chunk:false">
<title>Obtendo estatísticas</title>
<simpara>
Estatísticas do cliente podem ser obtidas chamando a função
<function>mysqli_get_client_stats</function>
</simpara>
<simpara>
Estatísticas de conexão podem ser obtidas chamando a função
<function>mysqli_get_connection_stats</function>.
</simpara>
<simpara>
Ambas as funções retornam um array associativo,
onde o nome da estatística é a chave para o dado estatístico
correspondente.
</simpara>
</section>
<section xml:id="mysqlnd.stats.statistics" annotations="chunk:false">
<title>Estatísticas do Driver Nativo MySQL</title>
<simpara>
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.
<!-- Processo executando o servidor? -->
</simpara>
<simpara>
As seguintes estatísticas são produzidas pelo Driver Nativo MySQL:
</simpara>
<variablelist>
<title>Estatísticas Relacionadas à Rede</title>
<varlistentry xml:id="mysqlnd.stats.statistics.bytes-sent">
<term><literal>bytes_sent</literal></term>
<listitem>
<simpara>
Número de bytes enviados do PHP para o servidor MySQL.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.bytes-received">
<term><literal>bytes_received</literal></term>
<listitem>
<simpara>
Número de bytes recebidos do servidor MySQL.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.packets-sent">
<term><literal>packets_sent</literal></term>
<listitem>
<simpara>
Número de pacotes enviados pelo protocolo Cliente Servidor do MySQL.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.packets-received">
<term><literal>packets_received</literal></term>
<listitem>
<simpara>
Número de pacotes recebidos pelo protocolo Cliente Servidor do MySQL.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.protocol-overhead-in">
<term><literal>protocol_overhead_in</literal></term>
<listitem>
<simpara>
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.
<code>protocol_overhead_in = packets_received * 4</code>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.protocol-overhead-out">
<term><literal>protocol_overhead_out</literal></term>
<listitem>
<simpara>
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.
<code>protocol_overhead_out = packets_received * 4</code>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.bytes-received-ok-packet">
<term><literal>bytes_received_ok_packet</literal></term>
<listitem>
<simpara>
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.
</simpara>
<note>
<simpara>
O tamanho total em bytes inclui o tamanho do pacote de cabeçalho.
(4 bytes, consulte sobre sobrecarga do protocolo)
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.packets-received-ok">
<term><literal>packets_received_ok</literal></term>
<listitem>
<simpara>
Número de pacotes OK recebidos pelo protocolo Cliente Servidor do MySQL.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.bytes-received-eof-packet">
<term><literal>bytes_received_eof_packet</literal></term>
<listitem>
<simpara>
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.
</simpara>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('mysqlnd.stats.statistics.bytes-received-ok-packet')/db:listitem/db:note)">
<xi:fallback/>
</xi:include>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.packets-received-eof">
<term><literal>packets_received_eof</literal></term>
<listitem>
<simpara>
Número de pacotes EOF recebidos pelo protocolo Cliente Servidor do MySQL.
</simpara>
<simpara>
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.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.bytes-received-rset-header-packet">
<term><literal>bytes_received_rset_header_packet</literal></term>
<listitem>
<simpara>
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
(<literal>LOAD LOCAL INFILE</literal>, <literal>INSERT</literal>,
<literal>UPDATE</literal>, <literal>SELECT</literal>, mensagem de erro).
</simpara>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('mysqlnd.stats.statistics.bytes-received-ok-packet')/db:listitem/db:note)">
<xi:fallback/>
</xi:include>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.packets-received-rset-header">
<term><literal>packets_received_rset_header</literal></term>
<listitem>
<simpara>
Número de pacotes de cabeçalho de conjunto de resultados recebidos pelo protocolo Cliente Servidor do MySQL.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.bytes-received-rset-field-meta-packet">
<term><literal>bytes_received_rset_field_meta_packet</literal></term>
<listitem>
<simpara>
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.
</simpara>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('mysqlnd.stats.statistics.bytes-received-ok-packet')/db:listitem/db:note)">
<xi:fallback/>
</xi:include>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.packets-received-rset-field-meta">
<term><literal>packets_received_rset_field_meta</literal></term>
<listitem>
<simpara>
Número de pacotesde metadados (informação de campo) de conjunto de resultados
recebidos pelo protocolo Cliente Servidor do MySQL.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.bytes-received-rset-row-packet">
<term><literal>bytes_received_rset_row_packet</literal></term>
<listitem>
<simpara>
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
<literal>rows_fetched_from_server_normal</literal>
e <literal>rows_fetched_from_server_ps</literal>
de <literal>bytes_received_rset_row_packet</literal>.
</simpara>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('mysqlnd.stats.statistics.bytes-received-ok-packet')/db:listitem/db:note)">
<xi:fallback/>
</xi:include>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.packets-received-rset-row">
<term><literal>packets_received_rset_row</literal></term>
<listitem>
<simpara>
Número de pacotes de dados de registros do conjunto de resultados recebidos pelo protocolo Cliente Servidor do MySQL.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.bytes-received-prepare-response-packet">
<term><literal>bytes_received_prepare_response_packet</literal></term>
<listitem>
<simpara>
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.
</simpara>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('mysqlnd.stats.statistics.bytes-received-ok-packet')/db:listitem/db:note)">
<xi:fallback/>
</xi:include>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.packets-received-prepare-response">
<term><literal>packets_received_prepare_response</literal></term>
<listitem>
<simpara>
Número de pacotes de inicialização de instruções preparadas recebidos
pelo protocolo Cliente Servidor do MySQL.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.bytes-received-change-user-packet">
<term><literal>bytes_received_change_user_packet</literal></term>
<listitem>
<simpara>
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.
</simpara>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('mysqlnd.stats.statistics.bytes-received-ok-packet')/db:listitem/db:note)">
<xi:fallback/>
</xi:include>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.packets-received-change-user">
<term><literal>packets_received_change_user</literal></term>
<listitem>
<simpara>
Número de pacotes COM_CHANGE_USER recebidos pelo protocolo Cliente Servidor do MySQL.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.packets-sent-command">
<term><literal>packets_sent_command</literal></term>
<listitem>
<simpara>
Número de comandos do protocolo Cliente Servidor do MySQL enviados pelo PHP ao MySQL.
</simpara>
<simpara>
Não há como saber quais foram os comandos específicos e quantos deles
foram enviados.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.bytes-received-real-data_normal">
<term><literal>bytes_received_real_data_normal</literal></term>
<listitem>
<simpara>
Número de bytes dos dados reais buscados pelo cliente PHP vindos do
<literal>mysqlnd</literal> usando o protocolo de texto.
</simpara>
<simpara>
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.
</simpara>
<simpara>
Observe que embora um conjunto de resultados completo possa ter sido puxado do MySQL
pelo <literal>mysqlnd</literal>, esta estatística apenas conta dados reais
puxados a partir do <literal>mysqlnd</literal> pelo cliente PHP.
</simpara>
<para>
A seguir é apresentado um exemplo de sequência de código que irá incrementar o valor:
<programlisting>
<![CDATA[
$mysqli = new mysqli();
$res = $mysqli->query("SELECT 'abc'");
$res->fetch_assoc();
$res->close();
]]>
</programlisting>
Cada operação de busca irá incrementar o valor.
</para>
<para>
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:
<programlisting>
<![CDATA[
$mysqli = new mysqli();
$res = $mysqli->query("SELECT 'abc'");
$res->close();
]]>
</programlisting>
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.bytes-received-real-data-ps">
<term><literal>bytes_received_real_data_ps</literal></term>
<listitem>
<simpara>
Número de bytes dos dados reais buscados pelo cliente PHP vindos do
<literal>mysqlnd</literal> usando o protocolo de instruções preparadas.
</simpara>
<simpara>
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.
</simpara>
<simpara>
O valor não será incrementado se o conjunto de resultados não for subsequentemente lido pelo cliente PHP.
</simpara>
<simpara>
Observe que embora um conjunto de resultados completo possa ter sido puxado do MySQL
pelo <literal>mysqlnd</literal>, esta estatística apenas conta dados reais
puxados a partir do <literal>mysqlnd</literal> pelo cliente PHP.
</simpara>
<simpara>
Consulte também <literal>bytes_received_real_data_normal</literal>.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist>
<title>Estatísticas Relacionadas ao Conjunto de Resultados</title>
<varlistentry xml:id="mysqlnd.stats.statistics.result-set-queries">
<term><literal>result_set_queries</literal></term>
<listitem>
<simpara>
Número de consultas que geraram um conjunto de resultados.
Exemplos de consultas que geram um conjunto de resultados:
<literal>SELECT</literal>, <literal>SHOW</literal>.
</simpara>
<simpara>
A estatística não será incrementada se ocorrer um erro ao ler
o pacote de cabeçalho do conjunto de resultados.
</simpara>
<note>
<simpara>
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.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.non-result-set-queries">
<term><literal>non_result_set_queries</literal></term>
<listitem>
<simpara>
Número de consultas que não geraram um conjunto de resultados.
Exemplos de consultas que não geram um conjunto de resultados:
<literal>INSERT</literal>, <literal>UPDATE</literal>, <literal>LOAD DATA</literal>.
</simpara>
<simpara>
A estatística não será incrementada se ocorrer um erro ao ler
o pacote de cabeçalho do conjunto de resultados.
</simpara>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('mysqlnd.stats.statistics.result-set-queries')/db:listitem/db:note)">
<xi:fallback/>
</xi:include>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.no-index-used">
<term><literal>no_index_used</literal></term>
<listitem>
<simpara>
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 <literal>--log-queries-not-using-indexes</literal>).
</simpara>
<note>
<simpara>
Essas consultas podem ser reportadas através de uma exceção com
<code>mysqli_report(MYSQLI_REPORT_INDEX);</code>.
É possível reportá-las também através de um alerta com
<code>mysqli_report(MYSQLI_REPORT_INDEX ^ MYSQLI_REPORT_STRICT);</code>.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.bad-index-used">
<term><literal>bad_index_used</literal></term>
<listitem>
<simpara>
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 <literal>--log-slow-queries</literal>).
</simpara>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('mysqlnd.stats.statistics.no-index-used')/db:listitem/db:note)">
<xi:fallback/>
</xi:include>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.slow-queries">
<term><literal>slow_queries</literal></term>
<listitem>
<simpara>
Instruções SQL que levaram mais de <literal>long_query_time</literal>
segundos para execução e requereram que pelo menos
<literal>min_examined_row_limit</literal> registros fossem examinados.
</simpara>
<caution>
<simpara>
Não reportada através de <function>mysqli_report</function>.
</simpara>
</caution>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.buffered-sets">
<term><literal>buffered_sets</literal></term>
<listitem>
<simpara>
Número de conjuntos de resultados em buffer retornados por consultas
normais (isto é, não por via de instrução preparada).
</simpara>
<para>
Exemplos de chamadas API que armazenarão conjuntos de resultados em buffer no cliente:
<simplelist type="inline">
<member><function>mysqli_query</function></member>
<member><function>mysqli_store_result</function></member>
<member><function>mysqli_stmt_get_result</function></member>
</simplelist>
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.unbuffered-sets">
<term><literal>unbuffered_sets</literal></term>
<listitem>
<simpara>
Número de conjuntos de resultados sem buffer retornados por consultas
normais (isto é, não por via de instrução preparada).
</simpara>
<para>
Exemplos de chamadas API que não armazenarão conjuntos de resultados em buffer no cliente:
<simplelist type="inline">
<member><function>mysqli_use_result</function></member>
</simplelist>
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.ps-buffered-sets">
<term><literal>ps_buffered_sets</literal></term>
<listitem>
<simpara>
Número de conjuntos de resultados em buffer retornados por instruções preparadas.
</simpara>
<para>
Exemplos de chamadas API que armazenarão conjuntos de resultados em buffer no cliente:
<simplelist type="inline">
<member><function>mysqli_stmt_store_result</function></member>
</simplelist>
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.ps-unbuffered-sets">
<term><literal>ps_unbuffered_sets</literal></term>
<listitem>
<simpara>
Número de conjuntos de resultados sem buffer retornados por instruções preparadas.
</simpara>
<simpara>
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.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.flushed-normal-sets">
<term><literal>flushed_normal_sets</literal></term>
<listitem>
<simpara>
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.
</simpara>
<note>
<simpara>
Os descarregamento ocorre somente com conjuntos de resultados sem buffer.
</simpara>
<simpara>
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.
</simpara>
<simpara>
Consulta também <literal>rows_skipped_normal</literal>, <literal>rows_skipped_ps</literal>.
</simpara>
<para>
Algumas causas possíveis para um descarregamento implícito:
<itemizedlist>
<listitem>
<simpara>
Aplicação cliente com falhas
</simpara>
</listitem>
<listitem>
<simpara>
Cliente parou de ler depois de ter encontrado o que estava procurando
mas fez o MySQL calcular mais registros que o necessário
</simpara>
</listitem>
<listitem>
<simpara>
Aplicação cliente parou inesperadamente
</simpara>
</listitem>
</itemizedlist>
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.flushed-ps-sets">
<term><literal>flushed_ps_sets</literal></term>
<listitem>
<simpara>
Número de conjuntos de resultados de instruções preparadas
com dados não lidos que foram silenciosamente descarregados.
</simpara>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('mysqlnd.stats.statistics.flushed-normal-sets')/db:listitem/db:note)">
<xi:fallback/>
</xi:include>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.ps-prepared-never-executed">
<term><literal>ps_prepared_never_executed</literal></term>
<listitem>
<simpara>
Número de intruções preparadas mas nunca executadas.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.ps-prepared-once-executed">
<term><literal>ps_prepared_once_executed</literal></term>
<listitem>
<simpara>
Número de intruções preparadas executadas apenas uma vez.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.rows-fetched-from-server-normal">
<term><literal>rows_fetched_from_server_normal</literal></term>
<term><literal>rows_fetched_from_server_ps</literal></term>
<listitem>
<simpara>
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.
</simpara>
<simpara>
Consulte também <literal>packets_received_rset_row</literal>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.rows-buffered-from-server-normal">
<term><literal>rows_buffered_from_client_normal</literal></term>
<listitem>
<simpara>
Número total de registros em buffer originários de uma consulta normal.
</simpara>
<simpara>
Este é o número de registros que foram buscados do MySQL e armazenados em buffer no cliente.
</simpara>
<para>
Exemplos de consultas que irão armazenar resultados em buffer:
<simplelist>
<member><function>mysqli_query</function></member>
<member><function>mysqli_store_result</function></member>
</simplelist>
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.rows-buffered-from-client-ps">
<term><literal>rows_buffered_from_client_ps</literal></term>
<listitem>
<simpara>
O mesmo que <literal>rows_buffered_from_client_normal</literal>,
porém para instruções preparadas.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.rows-fetched-from-client-normal-buffered">
<term><literal>rows_fetched_from_client_normal_buffered</literal></term>
<listitem>
<simpara>
Número total de registros buscados pelo cliente a partir de um conjunto de resultados em buffer
criado por uma consulta normal.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.rows-fetched-from-client-ps-buffered">
<term><literal>rows_fetched_from_client_ps_buffered</literal></term>
<listitem>
<simpara>
Número total de registros buscados pelo cliente a partir de um conjunto de resultados em buffer
criado por uma instrução preparada.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.rows-fetched-from-client-normal-unbuffered">
<term><literal>rows_fetched_from_client_normal_unbuffered</literal></term>
<listitem>
<simpara>
Número total de registros buscados pelo cliente a partir de um conjunto de resultados sem buffer
criado por uma consulta normal.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.rows-fetched-from-client-ps-unbuffered">
<term><literal>rows_fetched_from_client_ps_unbuffered</literal></term>
<listitem>
<simpara>
Número total de registros buscados pelo cliente a partir de um conjunto de resultados sem buffer
criado por uma instrução preparada.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.rows-fetched-from-client-ps-cursor">
<term><literal>rows_fetched_from_client_ps_cursor</literal></term>
<listitem>
<simpara>
Número total de registros buscados pelo cliente a partir de um cursor criado por uma
instrução preparada.
</simpara>
</listitem>
</varlistentry>
<!-- TODO: This seems to actually be supported, check and document -->
<varlistentry xml:id="mysqlnd.stats.statistics.rows-skipped-normal">
<term><literal>rows_skipped_normal</literal></term>
<term><literal>rows_skipped_ps</literal></term>
<listitem>
<simpara>
Reservada para uso futuro (atualmente não suportada).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.copy-on-write">
<term><literal>copy_on_write_saved</literal></term>
<term><literal>copy_on_write_performed</literal></term>
<listitem>
<simpara>
Esta é uma estatística cujo escopo está no nível de processo.
</simpara>
<simpara>
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.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.free-result">
<term><literal>explicit_free_result</literal></term>
<term><literal>implicit_free_result</literal></term>
<listitem>
<simpara>
Esta é uma estatística cujo escopo está no nível de conexão e de processo.
</simpara>
<simpara>
Número total de conjuntos de resultados liberados.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-text-fetched-null">
<term><literal>proto_text_fetched_null</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_NULL</literal>
buscadas por uma consulta normal (protocolo de texto MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-binary-fetched-null">
<term><literal>proto_binary_fetched_null</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_NULL</literal>
buscadas por uma instrução preparada (protocolo binário MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-text-fetched-bit">
<term><literal>proto_text_fetched_bit</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_BIT</literal>
buscadas por uma consulta normal (protocolo de texto MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-binary-fetched-bit">
<term><literal>proto_binary_fetched_bit</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_BIT</literal>
buscadas por uma instrução preparada (protocolo binário MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-text-fetched-tinyint">
<term><literal>proto_text_fetched_tinyint</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_TINY</literal>
buscadas por uma consulta normal (protocolo de texto MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-binary-fetched-tinyint">
<term><literal>proto_binary_fetched_tinyint</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_TINY</literal>
buscadas por uma instrução preparada (protocolo binário MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-text-fetched-short">
<term><literal>proto_text_fetched_short</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_SHORT</literal>
buscadas por uma consulta normal (protocolo de texto MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-binary-fetched-short">
<term><literal>proto_binary_fetched_short</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_SHORT</literal>
buscadas por uma instrução preparada (protocolo binário MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-text-fetched-int24">
<term><literal>proto_text_fetched_int24</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_INT24</literal>
buscadas por uma consulta normal (protocolo de texto MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-binary-fetched-int24">
<term><literal>proto_binary_fetched_int24</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_INT24</literal>
buscadas por uma instrução preparada (protocolo binário MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-text-fetched-int">
<term><literal>proto_text_fetched_int</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_LONG</literal>
buscadas por uma consulta normal (protocolo de texto MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-binary-fetched-int">
<term><literal>proto_binary_fetched_int</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_LONG</literal>
buscadas por uma instrução preparada (protocolo binário MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-text-fetched-bigint">
<term><literal>proto_text_fetched_bigint</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_LONGLONG</literal>
buscadas por uma consulta normal (protocolo de texto MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-binary-fetched-bigint">
<term><literal>proto_binary_fetched_bigint</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_LONGLONG</literal>
buscadas por uma instrução preparada (protocolo binário MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-text-fetched-decimal">
<term><literal>proto_text_fetched_decimal</literal></term>
<listitem>
<simpara>
Número total de colunas dos tipos
<literal>MYSQL_TYPE_DECIMAL</literal> ou <literal>MYSQL_TYPE_NEWDECIMAL</literal>
buscadas por uma consulta normal (protocolo de texto MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-binary-fetched-decimal">
<term><literal>proto_binary_fetched_decimal</literal></term>
<listitem>
<simpara>
Número total de colunas dos tipos
<literal>MYSQL_TYPE_DECIMAL</literal> ou <literal>MYSQL_TYPE_NEWDECIMAL</literal>
buscadas por uma instrução preparada (protocolo binário MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-text-fetched-float">
<term><literal>proto_text_fetched_float</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_FLOAT</literal>
buscadas por uma consulta normal (protocolo de texto MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-binary-fetched-float">
<term><literal>proto_binary_fetched_float</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_FLOAT</literal>
buscadas por uma instrução preparada (protocolo binário MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-text-fetched-double">
<term><literal>proto_text_fetched_double</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_DOUBLE</literal>
buscadas por uma consulta normal (protocolo de texto MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-binary-fetched-double">
<term><literal>proto_binary_fetched_double</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_DOUBLE</literal>
buscadas por uma instrução preparada (protocolo binário MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-text-fetched-date">
<term><literal>proto_text_fetched_date</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_DATE</literal> ou <literal>MYSQL_TYPE_NEWDATE</literal>
buscadas por uma consulta normal (protocolo de texto MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-binary-fetched-date">
<term><literal>proto_binary_fetched_date</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_DATE</literal> ou <literal>MYSQL_TYPE_NEWDATE</literal>
buscadas por uma instrução preparada (protocolo binário MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-text-fetched-year">
<term><literal>proto_text_fetched_year</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_YEAR</literal>
buscadas por uma consulta normal (protocolo de texto MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-binary-fetched-year">
<term><literal>proto_binary_fetched_year</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_YEAR</literal>
buscadas por uma instrução preparada (protocolo binário MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-text-fetched-time">
<term><literal>proto_text_fetched_time</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_TIME</literal>
buscadas por uma consulta normal (protocolo de texto MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-binary-fetched-time">
<term><literal>proto_binary_fetched_time</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_TIME</literal>
buscadas por uma instrução preparada (protocolo binário MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-text-fetched-datetime">
<term><literal>proto_text_fetched_datetime</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_DATETIME</literal>
buscadas por uma consulta normal (protocolo de texto MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-binary-fetched-datetime">
<term><literal>proto_binary_fetched_datetime</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_DATETIME</literal>
buscadas por uma instrução preparada (protocolo binário MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-text-fetched-timestamp">
<term><literal>proto_text_fetched_timestamp</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_TIMESTAMP</literal>
buscadas por uma consulta normal (protocolo de texto MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-binary-fetched-timestamp">
<term><literal>proto_binary_fetched_timestamp</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_TIMESTAMP</literal>
buscadas por uma instrução preparada (protocolo binário MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-text-fetched-string">
<term><literal>proto_text_fetched_string</literal></term>
<listitem>
<simpara>
Número total de colunas dos tipos
<literal>MYSQL_TYPE_STRING</literal>, <literal>MYSQL_TYPE_VARSTRING</literal> ou <literal>MYSQL_TYPE_VARCHAR</literal>
buscadas por uma consulta normal (protocolo de texto MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-binary-fetched-string">
<term><literal>proto_binary_fetched_string</literal></term>
<listitem>
<simpara>
Número total de colunas dos tipos
<literal>MYSQL_TYPE_STRING</literal>, <literal>MYSQL_TYPE_VARSTRING</literal> ou <literal>MYSQL_TYPE_VARCHAR</literal>
buscadas por uma instrução preparada (protocolo binário MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-text-fetched-blob">
<term><literal>proto_text_fetched_blob</literal></term>
<listitem>
<simpara>
Número total de colunas dos tipos
<literal>MYSQL_TYPE_TINY_BLOB</literal>,
<literal>MYSQL_TYPE_MEDIUM_BLOB</literal>,
<literal>MYSQL_TYPE_LONG_BLOB</literal>
ou <literal>MYSQL_TYPE_BLOB</literal>
buscadas por uma consulta normal (protocolo de texto MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-binary-fetched-blob">
<term><literal>proto_binary_fetched_blob</literal></term>
<listitem>
<simpara>
Número total de colunas dos tipos
<literal>MYSQL_TYPE_TINY_BLOB</literal>,
<literal>MYSQL_TYPE_MEDIUM_BLOB</literal>,
<literal>MYSQL_TYPE_LONG_BLOB</literal>
ou <literal>MYSQL_TYPE_BLOB</literal>
buscadas por uma instrução preparada (protocolo binário MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-text-fetched-enum">
<term><literal>proto_text_fetched_enum</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_ENUM</literal>
buscadas por uma consulta normal (protocolo de texto MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-binary-fetched-enum">
<term><literal>proto_binary_fetched_enum</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_ENUM</literal>
buscadas por uma instrução preparada (protocolo binário MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-text-fetched-set">
<term><literal>proto_text_fetched_set</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_SET</literal>
buscadas por uma consulta normal (protocolo de texto MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-binary-fetched-set">
<term><literal>proto_binary_fetched_set</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_SET</literal>
buscadas por uma instrução preparada (protocolo binário MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-text-fetched-geometry">
<term><literal>proto_text_fetched_geometry</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_GEOMETRY</literal>
buscadas por uma consulta normal (protocolo de texto MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-binary-fetched-geometry">
<term><literal>proto_binary_fetched_geometry</literal></term>
<listitem>
<simpara>
Número total de colunas do tipo
<literal>MYSQL_TYPE_GEOMETRY</literal>
buscadas por uma instrução preparada (protocolo binário MySQL).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-text-fetched-other">
<term><literal>proto_text_fetched_other</literal></term>
<listitem>
<simpara>
Número total de colunas dos tipos
<literal>MYSQL_TYPE_<replaceable>*</replaceable></literal>
não listadas previamente e
buscadas por uma consulta normal (protocolo de texto MySQL).
</simpara>
<note>
<simpara>
Em teoria, deveria ser sempre <literal>0</literal>.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.proto-binary-fetched-other">
<term><literal>proto_binary_fetched_other</literal></term>
<listitem>
<simpara>
Número total de colunas dos tipos
<literal>MYSQL_TYPE_<replaceable>*</replaceable></literal>
não listadas previamente e
buscadas por uma instrução preparada (protocolo binário MySQL).
</simpara>
<note>
<simpara>
Em teoria, deveria ser sempre <literal>0</literal>.
</simpara>
</note>
</listitem>
</varlistentry>
</variablelist>
<variablelist>
<title>Estatísticas Relacionadas a Conexões</title>
<varlistentry xml:id="mysqlnd.stats.statistics.connect-success">
<term><literal>connect_success</literal></term>
<listitem>
<simpara>
Número total de tentativas bem sucedidas de conexões.
</simpara>
<note>
<simpara>
<literal>connect_success</literal> 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
é <literal>connect_success - pconnect_success</literal>.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.pconnect-success">
<term><literal>pconnect_success</literal></term>
<listitem>
<simpara>
Número total de tentativas bem sucedidas de conexões persistentes.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.connect-failure">
<term><literal>connect_failure</literal></term>
<listitem>
<simpara>
Número total de tentativas falhadas de conexões.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.reconnect">
<term><literal>reconnect</literal></term>
<listitem>
<simpara>
Esta é uma estatística cujo escopo está no nível de processo.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.active-connections">
<term><literal>active_connections</literal></term>
<listitem>
<simpara>
Esta é uma estatística cujo escopo está no nível de processo.
</simpara>
<simpara>
Número total de conexões ativas, persistentes e não persistentes.
</simpara>
<note>
<simpara>
Número total de conexões ativas não persistentes é
<literal>active_connections - active_persistent_connections</literal>.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.active-persistent-connections">
<term><literal>active_persistent_connections</literal></term>
<listitem>
<simpara>
Esta é uma estatística cujo escopo está no nível de processo.
</simpara>
<simpara>
Número total de conexões ativas persistentes.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.explicit-close">
<term><literal>explicit_close</literal></term>
<listitem>
<simpara>
Número total de conexões fechadas explicitamente.
</simpara>
<example>
<title>Exemplos de trechos de código que causam um fechamento explícito</title>
<itemizedlist>
<listitem>
<programlisting>
<![CDATA[
$link = new mysqli(/* ... */);
$link->close(/* ... */);
]]>
</programlisting>
</listitem>
<listitem>
<programlisting>
<![CDATA[
$link = new mysqli(/* ... */);
$link->connect(/* ... */);
]]>
</programlisting>
</listitem>
</itemizedlist>
</example>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.implicit-close">
<term><literal>implicit_close</literal></term>
<listitem>
<simpara>
Número total de conexões fechadas implicitamente.
</simpara>
<example>
<title>Exemplos de trechos de código que causam um fechamento implícito</title>
<itemizedlist>
<listitem>
<programlisting>
<![CDATA[
$link = new mysqli(/* ... */);
$link->real_connect(/* ... */);
]]>
</programlisting>
</listitem>
<listitem>
<programlisting>
<code>unset($link)</code>
</programlisting>
</listitem>
<listitem>
<simpara>
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
</simpara>
</listitem>
<listitem>
<simpara>
Conexão persistente: ping/change_user falha e a extensão mysqli
fecha a conexão
</simpara>
</listitem>
<listitem>
<simpara>
Fim de execução de script: fecha conexões que não foram
fechadas pelo usuário
</simpara>
</listitem>
</itemizedlist>
</example>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.disconnect-close">
<term><literal>disconnect_close</literal></term>
<listitem>
<simpara>
Falhas de conexão indicadas pela chamada API C
<literal>mysql_real_connect</literal> durante uma tentativa de se
estabalecer uma conexão.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.in-middle-of-command-close">
<term><literal>in_middle_of_command_close</literal></term>
<listitem>
<simpara>
Esta é uma estatística cujo escopo está no nível de processo.
</simpara>
<simpara>
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).
</simpara>
<warning>
<simpara>
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.
</simpara>
</warning>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.init-command-executed-count">
<term><literal>init_command_executed_count</literal></term>
<listitem>
<simpara>
Número total de execuções do comando init.
Por exemplo: <code>mysqli_options(MYSQLI_INIT_COMMAND , $value)</code>.
</simpara>
<simpara>
O número total de execuções bem sucedidas é
<literal>init_command_executed_count - init_command_failed_count</literal>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.init-command-failed-count">
<term><literal>init_command_failed_count</literal></term>
<listitem>
<simpara>
Número total de comandos init falhados.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist>
<title>Estatísticas Relacionadas aos Comandos <literal>COM_*</literal></title>
<varlistentry xml:id="mysqlnd.stats.statistics.com">
<term><literal>com_quit</literal></term>
<term><literal>com_init_db</literal></term>
<term><literal>com_query</literal></term>
<term><literal>com_field_list</literal></term>
<term><literal>com_create_db</literal></term>
<term><literal>com_drop_db</literal></term>
<term><literal>com_refresh</literal></term>
<term><literal>com_shutdown</literal></term>
<term><literal>com_statistics</literal></term>
<term><literal>com_process_info</literal></term>
<term><literal>com_connect</literal></term>
<term><literal>com_process_kill</literal></term>
<term><literal>com_debug</literal></term>
<term><literal>com_ping</literal></term>
<term><literal>com_time</literal></term>
<term><literal>com_delayed_insert</literal></term>
<term><literal>com_change_user</literal></term>
<term><literal>com_binlog_dump</literal></term>
<term><literal>com_table_dump</literal></term>
<term><literal>com_connect_out</literal></term>
<term><literal>com_register_slave</literal></term>
<term><literal>com_stmt_prepare</literal></term>
<term><literal>com_stmt_execute</literal></term>
<term><literal>com_stmt_send_long_data</literal></term>
<term><literal>com_stmt_close</literal></term>
<term><literal>com_stmt_reset</literal></term>
<term><literal>com_stmt_set_option</literal></term>
<term><literal>com_stmt_fetch</literal></term>
<term><literal>com_daemon</literal></term>
<listitem>
<simpara>
Número total de tentativas de envio de um certo comando <literal>COM_*</literal>
do PHP para o MySQL.
</simpara>
<simpara>
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.
</simpara>
<caution>
<simpara>
Se 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
<quote>Error while sending %s packet. PID=%d.</quote>
</simpara>
</caution>
<example>
<title>Exemplos de uso</title>
<itemizedlist>
<listitem>
<simpara>
Verificar se o PHP envia certos comandos ao MySQL, por exemplo,
verificar se o cliente envia <literal>COM_PROCESS_KILL</literal>
</simpara>
</listitem>
<listitem>
<simpara>
Calcular o número médio de execuções de instruções preparadas
comparando <literal>COM_EXECUTE</literal> com
<literal>COM_PREPARE</literal>
</simpara>
</listitem>
<listitem>
<simpara>
Verificar se o PHP executou alguma instrução SQL não preparada
observando se <literal>COM_QUERY</literal> é igual a zero
</simpara>
</listitem>
<listitem>
<simpara>
Identificar scripts PHP que executam um número excessivo de instruções
SQL, verificando <literal>COM_QUERY</literal> e
<literal>COM_EXECUTE</literal>
</simpara>
</listitem>
</itemizedlist>
</example>
</listitem>
</varlistentry>
</variablelist>
<variablelist>
<title>Estatísticas Miscelâneas</title>
<varlistentry xml:id="mysqlnd.stats.statistics.stmt-close">
<term><literal>explicit_stmt_close</literal></term>
<term><literal>implicit_stmt_close</literal></term>
<listitem>
<simpara>
Esta é uma estatística cujo escopo está no nível de processo.
</simpara>
<simpara>
Número total de instruções preparadas fechadas.
</simpara>
<note>
<simpara>
Uma instrução preparada é sempre fechada explicitamente. O único momento em que ela é fechaada implicitamente é quando sua preparação falha.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.memory-management">
<term><literal>mem_emalloc_count</literal></term>
<term><literal>mem_emalloc_ammount</literal></term>
<term><literal>mem_ecalloc_count</literal></term>
<term><literal>mem_ecalloc_ammount</literal></term>
<term><literal>mem_realloc_count</literal></term>
<term><literal>mem_realloc_ammount</literal></term>
<term><literal>mem_efree_count</literal></term>
<term><literal>mem_malloc_count</literal></term>
<term><literal>mem_malloc_ammount</literal></term>
<term><literal>mem_calloc_count</literal></term>
<term><literal>mem_calloc_ammount</literal></term>
<term><literal>mem_ealloc_count</literal></term>
<term><literal>mem_ealloc_ammount</literal></term>
<term><literal>mem_free_count</literal></term>
<listitem>
<simpara>
Esta é uma estatística cujo escopo está no nível de processo.
</simpara>
<simpara>
Chamadas de gerenciamento de memória.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.command-buffer-too-small">
<term><literal>command_buffer_too_small</literal></term>
<!-- TODO: XInclude/sync description of INI setting
ini.mysqlnd.net-cmd-buffer-size with this statistic -->
<listitem>
<simpara>
Número de extensões de buffer de comandos de rede ao enviar comandos do
PHP para o MySQL.
</simpara>
<simpara>
MySQLnd aloca um buffer interno de comando/rede de
<link linkend="ini.mysqlnd.net-cmd-buffer-size">mysqlnd.net_cmd_buffer_size</link>
bytes para cada conexão.
</simpara>
<simpara>
Se um comando do protocolo Cliente Servidor do MySQL,
por exemplo <literal>COM_QUERY</literal> (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,
<literal>command_buffer_too_small</literal> será incrementada em uma unidade.
</simpara>
<simpara>
Se o MySQLnd tiver que aumentar o buffer para além do seu tamanho inicial de
<link linkend="ini.mysqlnd.net-cmd-buffer-size">mysqlnd.net_cmd_buffer_size</link>
bytes para quase todas as conexões,
deve ser considerado aumento do tamanho padrão para evitar
realocações.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="mysqlnd.stats.statistics.connection-reused">
<term><literal>connection_reused</literal></term>
<listitem>
<simpara>
O número total de vezes em que uma conexão persistente foi reutilizada.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</section>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->