1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-27 17:02:16 +01:00
Files
archived-doc-es/reference/mysqlnd/config.xml
Pedro Antonio Gil Rodríguez 0d5ebf3198 Actualización a la última versión
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@337701 c90b9560-bf6c-de11-be94-00142212c4b1
2015-09-02 10:59:38 +00:00

471 lines
19 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 8297529577d20612398dcac2f15d63e1bda5cb69 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="mysqlnd.config" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.runtime;
&extension.runtime;
<para>
<table>
<title>Opciones de configuración del Controlador Nativo de MySQL</title>
<tgroup cols="4">
<thead>
<row>
<entry>&Name;</entry>
<entry>&Default;</entry>
<entry>&Changeable;</entry>
<entry>&Changelog;</entry>
</row>
</thead>
<tbody>
<row>
<entry><link linkend="ini.mysqlnd.collect-statistics">mysqlnd.collect_statistics</link></entry>
<entry>"1"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Disponible desde PHP 5.3.0.</entry>
</row>
<row>
<entry><link linkend="ini.mysqlnd.collect-memory-statistics">mysqlnd.collect_memory_statistics</link></entry>
<entry>"0"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Available since PHP 5.3.0.</entry>
</row>
<row>
<entry><link linkend="ini.mysqlnd.debug">mysqlnd.debug</link></entry>
<entry>""</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Disponible desde PHP 5.3.0.</entry>
</row>
<row>
<entry><link linkend="ini.ini.mysqlnd.log-mask">mysqlnd.log_mask</link></entry>
<entry>0</entry>
<entry>PHP_INI_ALL</entry>
<entry>Disponible desde PHP 5.3.0</entry>
</row>
<row>
<entry><link linkend="ini.ini.mysqlnd.mempool-default-size">mysqlnd.mempool_default_size</link></entry>
<entry>16000</entry>
<entry>PHP_INI_ALL</entry>
<entry>Disponible desde PHP 5.3.3</entry>
</row>
<row>
<entry><link linkend="ini.mysqlnd.net-read-timeout">mysqlnd.net_read_timeout</link></entry>
<entry>"31536000"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Disponible desde PHP 5.3.0.</entry>
</row>
<row>
<entry><link linkend="ini.mysqlnd.net-cmd-buffer-size">mysqlnd.net_cmd_buffer_size</link></entry>
<entry>5.3.0 - "2048", 5.3.1 - "4096"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Disponible desde PHP 5.3.0.</entry>
</row>
<row>
<entry><link linkend="ini.mysqlnd.net-read-buffer-size">mysqlnd.net_read_buffer_size</link></entry>
<entry>"32768"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Disponible desde PHP 5.3.0.</entry>
</row>
<row>
<entry><link linkend="ini.mysqlnd.sha256-server-public-key">mysqlnd.sha256_server_public_key</link></entry>
<entry>""</entry>
<entry>PHP_INI_PERDIR</entry>
<entry>Disponible desde PHP 5.5.0.</entry>
</row>
<row>
<entry><link linkend="ini.mysqlnd.fetch_data_copy">mysqlnd.fetch_data_copy</link></entry>
<entry>0</entry>
<entry>PHP_INI_ALL</entry>
<entry>Disponible desde PHP 5.6.0.</entry>
</row>
</tbody>
</tgroup>
</table>
&ini.php.constants;
</para>
&ini.descriptions.title;
<para>
<variablelist>
<varlistentry xml:id="ini.mysqlnd.collect-statistics">
<term>
<parameter>mysqlnd.collect_statistics</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Habilita la recopilación de estadísticas de diversos clientes a las cuales se puede
acceder a través de <function>mysqli_get_client_stats</function>,
<function>mysqli_get_connection_stats</function>,
<function>mysqli_get_cache_stats</function>, y que también se muestran en la
sección <literal>mysqlnd</literal> de la salida de la
función <function>phpinfo</function>.
</para>
<para>
Este ajuste de configuración habilita todas las
<link linkend="mysqlnd.stats">estadísticas del Controlador Nativo
de MySQL</link> excepto aquellas relacionadas con la gestión de memoria.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.mysqlnd.collect-memory-statistics">
<term>
<parameter>mysqlnd.collect_memory_statistics</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Habilita la recopilación de diversas estadísticas de memoria a las que se puede
acceder a través de <function>mysqli_get_client_stats</function>,
<function>mysqli_get_connection_stats</function>,
<function>mysqli_get_cache_stats</function>, y que también se muestran en la
sección <literal>mysqlnd</literal> de la salida de la
función <function>phpinfo</function>.
</para>
<para>
Este ajuste de configuración habilita las estadísticas de gestión de
memoria dentro del conjunto total de
<link linkend="mysqlnd.stats">estadísticas del Controlador Nativo
de MySQL</link>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.mysqlnd.debug">
<term>
<parameter>mysqlnd.debug</parameter> <type>string</type>
</term>
<listitem>
<para>
Registra las comunicaciones de todas las extensiones que usan
<literal>mysqlnd</literal> al fichero de registros especificado.
</para>
<para>
El formato de la directiva es <literal>mysqlnd.debug =
"opción1[,parámetro_opción1][:opción2[,parámetro_opción2]]"</literal>.
</para>
<para>
Las opciones para la cadena de formato son las siguientes:
</para>
<itemizedlist>
<listitem>
<para>
A[,fichero] - Añade salidas de seguimiento al fichero especificado. También se asegura
de que los datos son escritos después de cada escritura. Esto se lleva a cabo cerrando
y reabriento el fichero de seguimiento (esto es lento). Ayuda a asegurarse de tener
un fichero de seguimiento completo cuando la aplicación falla.
</para>
</listitem>
<listitem>
<para>
a[,fichero] - Añade salidas de seguimiento al fichero especificado.
</para>
</listitem>
<listitem>
<para>
d - Habilita la salida desde las macros DBUG_&lt;N&gt; para el estado
actual. Se le puede añadir una lista de palabras clave las cuales seleccionarán
la salida solamente para las macros DBUG con esa palabra clave. Una lista vacía
de palabras clave implica la salida de todas las macros.
</para>
</listitem>
<listitem>
<para>
f[,funciones] - Limita las acciones del depurador para la lista especificada de
funciones. Una lista de funciones vacía implica que se seleccionarán todas
las funciones.
</para>
</listitem>
<listitem>
<para>
F - Marca cada línea de salida del depurador con el nombre del fichero
fuente que contiene la macro que causa la salida.
</para>
</listitem>
<listitem>
<para>
i - Marca cada línea de salida del depurador con el PID del proceso
actual.
</para>
</listitem>
<listitem>
<para>
L - Marca cada línea de salida de depurador con el número de línea del fichero
fuente de la macro que causa la salida.
</para>
</listitem>
<listitem>
<para>
n - Marca caa línea de salida del depurador con el nivel de anidamiento de la
función actual
</para>
</listitem>
<listitem>
<para>
o[,fichero] - Similar a a[,fichero] excepto que sobrescribe el fichero antiguo, por lo que no
realiza la agregación.
</para>
</listitem>
<listitem>
<para>
O[,fichero] - Similar a A[,fichero] excepto que sobrescribe el fichero antiguo, por lo que no
realiza la agregación.
</para>
</listitem>
<listitem>
<para>
t[,N] - Habilita el seguimiento del flujo de control de la función. El nivel de anidamiento
máximo está especificado por N, y el valor predeterminado es 200.
</para>
</listitem>
<listitem>
<para>
x - Esta opción activa el perfilamiento.
</para>
</listitem>
<listitem>
<para>
m - Seguimiento de llamadas relacionadas con la asignación y desasignación de memoria.
</para>
</listitem>
</itemizedlist>
<para>
Ejemplo:
</para>
<programlisting>
<![CDATA[
d:t:x:O,/tmp/mysqlnd.trace
]]>
</programlisting>
<note>
<para>
Esta característica solamente está disponible con una construcción de depuración de PHP. Funciona
en Microsoft Windows si se utiliza una construcción de depuración de PHP y PHP se ha
construido usando la verseión 9 de Microsoft Visual C o superior.
</para>
</note>
<para></para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.ini.mysqlnd.log-mask">
<term>
<parameter>mysqlnd.log_mask</parameter>
<type>integer</type>
</term>
<listitem>
<para>
Define qué consultas serán registradas. El valor predeterminado es 0, el cual deshabilita el registro.
Se define usando un entero, y no una constante de PHP. Por ejemplo, un valor de
48 (16 + 32) registrará las consultas lentas que usan un 'índice no bueno'
(SERVER_QUERY_NO_GOOD_INDEX_USED = 16) o no usan ningún índice en absoluto (SERVER_QUERY_NO_INDEX_USED = 32).
Un valor de 2043 (1 + 2 + 8 + ... + 1024) registrará todos los tipos de consultas lentas.
</para>
<para>
Los tipos son los siguientes: 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, and SERVER_QUERY_WAS_SLOW=1024.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.ini.mysqlnd.mempool-default-size">
<term>
<parameter>mysqlnd.mempool_default_size</parameter>
<type>integer</type>
</term>
<listitem>
<para>
Tamaño predeterminado de la caché de memoria de mysqlnd, el cual es usado por los conjuntos de resultados.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.mysqlnd.net-read-timeout">
<term>
<parameter>mysqlnd.net_read_timeout</parameter>
<type>integer</type>
</term>
<listitem>
<para>
<literal>mysqlnd</literal> y la Biblioteca Cliente de MySQL,
<literal>libmysqlclient</literal>, utilizan diferentes APIs de red.
<literal>mysqlnd</literal> utiliza flujos de PHP, mientras que
<literal>libmysqlclient</literal> utiliza su propia envoltura sobre las
llamadas a la red a nivel de operación. PHP, por defecto, establece un tiempo de
espera de lectura de 60s para los flujos. Esto se establece mediante
<filename>php.ini</filename>,
<literal>default_socket_timeout</literal>. Este valor predeterminado se aplica a
todos los flujos que no establecen otro valor de tiempo de espera.
<literal>mysqlnd</literal> no establece ningún otro valor y
por lo tanto las conexiones de consultas que se ejecutan durante mucho tiempo pueden ser desconectadas
después de <literal>default_socket_timeout</literal> segundos, resultando
en un mensaje de error <quote>2006 - MySQL Server has gone
away</quote>. La Biblioteca Cliente de MySQL establece un tiempo de espera predeterminado de
365 * 24 * 3600 segundos (1 año) y espera a que sucedan otros tiempos de
espera, como los tiempos de espera de TCP/IP. Ahora <literal>mysqlnd</literal>
utiliza el mismo tiempo de espera. El valor se puede configurar a través de
un nuevo ajuste de <filename>php.ini</filename>:
<literal>mysqlnd.net_read_timeout</literal>.
<literal>mysqlnd.net_read_timeout</literal> es utilizado por cualquier
extensión (<literal>ext/mysql</literal>,
<literal>ext/mysqli</literal>, <literal>PDO_MySQL</literal>) que
use <literal>mysqlnd</literal>. <literal>mysqlnd</literal> le indica
a los flujos de PHP que utilicen <literal>mysqlnd.net_read_timeout</literal>.
Observe que puede haber sútiles diferencias entre
<literal>MYSQL_OPT_READ_TIMEOUT</literal> de la Biblioteca Cliente
de MySQL y los flujos de PHP, por ejemplo
<literal>MYSQL_OPT_READ_TIMEOUT</literal> está documentado para funcionar
sólo con conexiones TCP/IP y, antes de MySQL 5.1.2, sólo con
Windows. Los flujos de PHP pueden no tener esta limitación. Compruebe
la documentación sobre los flujos si tiene alguna duda.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.mysqlnd.net-cmd-buffer-size">
<term>
<parameter>mysqlnd.net_cmd_buffer_size</parameter>
<type>long</type>
</term>
<listitem>
<para>
<literal>mysqlnd</literal> asigna un buffer de comandos/red interno de
<literal>mysqlnd.net_cmd_buffer_size</literal> (en
<filename>php.ini</filename>) bytes para cada conexión. Si un
comando del protocolo Cliente Servidor de MySQL, por ejemplo,
<literal>COM_QUERY</literal> (consulta <quote>normal</quote>), no
se ajusta al buffer, <literal>mysqlnd</literal> aumentará el
buffer lo que sea necesario para enviar el comando. Siempre que el
buffer se extienda para una conexión,
<literal>command_buffer_too_small</literal> será incrementado en
uno.
</para>
<para>
Si <literal>mysqlnd</literal> tiene que aumentar el buffer más allá de su
tamaño inicial de <literal>mysqlnd.net_cmd_buffer_size</literal>
bytes para casi todas las conexiones, se debería considerar aumentar
el tamaño predeterminado para evitar reasignaciones.
</para>
<para>
El tamaño predeterminado del buffer es de 2048 bytes en PHP 5.3.0. En versiones
posteriores, el tamaño predeterminado es de 4096.
</para>
<para>
Se recomienda establecer el tamaño de buffer a no menos de 4096
bytes debido a que <literal>mysqlnd</literal> también lo utiliza al leer
ciertos paquetes de comunicación desde MySQL. En PHP 5.3.0,
<literal>mysqlnd</literal> no aumentará el buffer si MySQL envía
un paquete que es más grande que el tamaño actual del buffer. Como
consecuencia, <literal>mysqlnd</literal> no es capaz de decodificar el
paquete y la aplicación cliente obtendrá un error. Solamente hay
dos situacioines en las que un paquete es más grande que los 2048
bytes predeterminados de <literal>mysqlnd.net_cmd_buffer_size</literal> en
PHP 5.3.0: el paquete transporta un mensaje de error muy grande, o el
paquete contiene los metadatos de columnas de
<literal>COM_LIST_FIELD</literal>
(<literal>mysql_list_fields()</literal>) y los metadatos provienen
de una columna de cadena con un valor predeterminado muy grande (>1900 bytes).
</para>
<para>
A partir de PHP 5.3.2, mysqlnd no permite establecer buffers menores
que 4096 bytes.
</para>
<para>
El valor también se puede establecer usando <literal>mysqli_options(enlace,
MYSQLI_OPT_NET_CMD_BUFFER_SIZE, tamaño)</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.mysqlnd.net-read-buffer-size">
<term>
<parameter>mysqlnd.net_read_buffer_size</parameter>
<type>long</type>
</term>
<listitem>
<para>
Tamaño máximo del trozo de lectura en bytes cuando se lee el cuerpo de un paqute de
comando de MySQL. El protocolo cliente servidor de MySQL encapsulta todos
sus comandos en paquetes. Los paquetes consisten en una pequeña cabecera y
un cuerpo con la carga útil real. El tamaño del cuerpo es codificado en
la cabecera. <literal>mysqlnd</literal> lee el cuerpo en trozos de
<literal>MIN(tamaño.cabecera, mysqlnd.net_read_buffer_size)</literal>
bytes. Si un cuerpo de un paquete es mayor que
<literal>mysqlnd.net_read_buffer_size</literal> bytes,
<literal>mysqlnd</literal> tiene que llamar a <literal>read()</literal>
varias veces.
</para>
<para>
El valor también se puede establecer usando <literal>mysqli_options(enlace,
MYSQLI_OPT_NET_READ_BUFFER_SIZE, tamaño)</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.mysqlnd.sha256-server-public-key">
<term>
<parameter>mysqlnd.sha256_server_public_key</parameter>
<type>string</type>
</term>
<listitem>
<para>
Relacionada con el Complemento de Autenticación SHA-256. El fichero con la clave
pública RSA del servidor de MySQL.
</para>
<para>
Los clientes pueden omitir la configuración de una clave pública RSA, especificar la clave a través
de este ajuste de configuración de PHP, o establecer la clave en tiempo de ejecución usando
<function>mysqli_options</function>. Si el cliente no proporciona un fichero de clave
pública RSA, entonces la clave será intercambiada como parte del
procedimiento de autenticación del Complemento de Autenticación SHA-256.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.mysqlnd.fetch_data_copy">
<term>
<parameter>mysqlnd.fetch_data_copy</parameter>
<type>long</type>
</term>
<listitem>
<para>
Fuerza la copia de conjuntos de resultados desde los búferes de conjuntos de
resultados interno a variables de PHP en lugar de usar la referencia
predeterminada y la lógica de Copiar al escribir. Vea las
<link linkend="mysqlnd.memory">notas de implementación de gestión de memoria</link>
para más detalles.
</para>
<para>
Copiar conjuntos de resultados en lugar de tener variables de PHP que hagan referencia
a ellos permite la liberación de la memoria ocupada anteriomente por las variables de PHP.
Dependiendo del código de la API de usuario, de las consultas reales de la base de datos y del
tamaño de sus conjuntos de resultados, se podría reducir la huella de memoria
de mysqlnd.
</para>
<para>
No se ha de establecer si se usa PDO_MySQL. PDO_MySQL aún no ha sido actualizado para
tener soporte par el nuevo modo de obtención.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</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
-->