mirror of
https://github.com/php/doc-es.git
synced 2026-03-23 23:12:09 +01:00
mysqlnd : fix XML by converting para to simpara tags via script
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: f44f0a5c9022492a565f4649d083532da15a678d Maintainer: seros Status: ready -->
|
||||
<!-- EN-Revision: 9598935f21bc472f22383fb989625f0b22785331 Maintainer: seros Status: ready -->
|
||||
<!-- Reviewed: yes Maintainer: seros -->
|
||||
<!-- Membership: bundled, external -->
|
||||
<book xml:id="book.mysqlnd" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="book.mysqlnd">
|
||||
<?phpdoc extension-membership="bundledexternal" ?>
|
||||
|
||||
<title>Controlador Nativo de MySQL</title>
|
||||
@@ -14,27 +14,27 @@
|
||||
|
||||
<preface xml:id="intro.mysqlnd">
|
||||
&reftitle.intro;
|
||||
<para>
|
||||
<simpara>
|
||||
El Controlador Nativo de MySQL (MySQL Native Driver en inglés) es un sustituto para
|
||||
la Biblioteca Cliente de MySQL (libmysqlclient). El Controlador Nativo de MySQL es parte de
|
||||
las fuentes oficiales de PHP a partir de PHP 5.3.0.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Las extensiones de base de datos de MySQL (la extensión MySQL,
|
||||
<literal>mysqli</literal> y PDO MYSQL), se comunican con el servidor
|
||||
de MySQL. En el pasado, esto lo realizaba la extensión utilizando los servicios
|
||||
prestados por la Biblioteca Cliente de MySQL. Las extensiones eran compiladas
|
||||
con la Biblioteca Cliente de MySQL con el fin de utilizar su protocolo
|
||||
cliente-servidor.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Ahora existe una alternativa con el Controlador Nativo de MySQL, ya que las extensiones
|
||||
de bases de datos MySQL puede ser compiladas para utilizar el Controlador Nativo de MySQL en lugar
|
||||
de la Biblioteca Cliente de MySQL.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
El Controlador Nativo de MySQL está escrito en C, como una extensión de PHP.
|
||||
</para>
|
||||
</simpara>
|
||||
</preface>
|
||||
|
||||
<!-- }}} -->
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: fa98ad518d2b960a56e44ad580907ed208ab633c Maintainer: PhilDaiguille Status: ready -->
|
||||
<!-- EN-Revision: 9598935f21bc472f22383fb989625f0b22785331 Maintainer: PhilDaiguille Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="mysqlnd.config">
|
||||
|
||||
@@ -104,19 +104,19 @@
|
||||
<type>bool</type>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Activa la recolección de diferentes estadísticas del cliente a las cuales
|
||||
se puede acceder mediante <function>mysqli_get_client_stats</function>,
|
||||
<function>mysqli_get_connection_stats</function>,
|
||||
y que también se describen
|
||||
en la sección <literal>mysqlnd</literal> de la salida de la función
|
||||
<function>phpinfo</function>.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Este parámetro activa todas
|
||||
<link linkend="mysqlnd.stats"> las estadísticas de MySQL Native Driver
|
||||
</link> excepto las relativas a la gestión de la memoria.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="ini.mysqlnd.collect-memory-statistics">
|
||||
@@ -125,7 +125,7 @@
|
||||
<type>bool</type>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Activa la recolección de diferentes estadísticas concernientes a la memoria
|
||||
que pueden ser consultadas mediante
|
||||
<function>mysqli_get_client_stats</function>,
|
||||
@@ -133,12 +133,12 @@
|
||||
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>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Este parámetro activa las estadísticas de gestión de la memoria entre
|
||||
<link linkend="mysqlnd.stats">las estadísticas proporcionadas por MySQL
|
||||
Native Driver</link>.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="ini.mysqlnd.debug">
|
||||
@@ -146,107 +146,107 @@
|
||||
<parameter>mysqlnd.debug</parameter> <type>string</type>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Registra las comunicaciones provenientes de cualquier extensión que utilice
|
||||
<literal>mysqlnd</literal>.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
El formato de esta directiva es <literal>mysqlnd.debug =
|
||||
"option1[,parameter_option1][:option2[,parameter_option2]]"</literal>.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Las opciones de formato de strings son las siguientes:
|
||||
</para>
|
||||
</simpara>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
A[,file] - Añade la traza a un fichero. Asegura que los datos son escritos
|
||||
después de cada escritura cerrando y volviendo a abrir el fichero de traza (lento). Esto
|
||||
ayuda a asegurar que el fichero de trazas será completo incluso si la aplicación falla.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
a[,file] - Añade la traza a un fichero.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
d - Activa la salida desde las macros DBUG_<N> para el estado actual.
|
||||
Puede ser seguido de una lista de palabras clave que seleccionan la salida solo
|
||||
para las macros DBUG con esa palabra clave (filtro). Una lista vacía de palabras clave
|
||||
seleccionará todo.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
f[,functions] - Limita las acciones del depurador a una lista específica de funciones.
|
||||
Una lista vacía hará que todas las funciones sean utilizadas.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
F - Marca cada línea de depuración con el nombre del fichero fuente que contiene la macro
|
||||
que causa esta salida.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
i - Marca cada línea de depuración con el PID.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
L - Marca cada línea de depuración con el nombre del fichero fuente así como la línea
|
||||
de la macro que causa esta salida.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
n - Marca cada línea de depuración con la profundidad actual de la función.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
o[,file] - Similar a a[,file] pero sobrescribe los ficheros en lugar de complementarlos.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
O[,file] - Similar a A[,file] pero sobrescribe los ficheros en lugar de complementarlos.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
t[,N] - Activa el trazado del flujo de control de las funciones. La profundidad máxima
|
||||
se especifica mediante N, por omisión 200.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
x - Activa el perfilado.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
m - Trazar las asignaciones y desasignaciones de memoria.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>
|
||||
<simpara>
|
||||
Ejemplo:
|
||||
</para>
|
||||
</simpara>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
d:t:x:O,/tmp/mysqlnd.trace
|
||||
]]>
|
||||
</programlisting>
|
||||
<note>
|
||||
<para>
|
||||
<simpara>
|
||||
Esta característica solo está disponible para las versiones de depuración de PHP.
|
||||
</para>
|
||||
</simpara>
|
||||
</note>
|
||||
<para/>
|
||||
<simpara/>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="ini.mysqlnd.log-mask">
|
||||
@@ -255,20 +255,20 @@ d:t:x:O,/tmp/mysqlnd.trace
|
||||
<type>int</type>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Define qué consulta será historizada. Por omisión, vale 0, lo que significa
|
||||
que los logs están desactivados. Conviene definir esta opción utilizando
|
||||
un entero, y no una constante PHP. Por ejemplo, un valor de
|
||||
48 (16 + 32) historizará las consultas lentas que utilicen 'no good index'
|
||||
(SERVER_QUERY_NO_GOOD_INDEX_USED = 16) o ningún índice en absoluto (SERVER_QUERY_NO_INDEX_USED = 32).
|
||||
Un valor de 2043 (1 + 2 + 8 + ... + 1024) historizará todo tipo de consultas lentas.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
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, y SERVER_QUERY_WAS_SLOW=1024.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="ini.mysqlnd.mempool-default-size">
|
||||
@@ -277,10 +277,10 @@ d:t:x:O,/tmp/mysqlnd.trace
|
||||
<type>int</type>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Tamaño por omisión de la cola de memoria mysqlnd, utilizada por los juegos
|
||||
de resultados.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="ini.mysqlnd.net-read-timeout">
|
||||
@@ -289,7 +289,7 @@ d:t:x:O,/tmp/mysqlnd.trace
|
||||
<type>int</type>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
<literal>mysqlnd</literal> y la MySQL Client Library,
|
||||
<literal>libmysqlclient</literal> utilizan API de red diferentes.
|
||||
<literal>mysqlnd</literal> utiliza los flujos PHP, mientras que
|
||||
@@ -317,7 +317,7 @@ d:t:x:O,/tmp/mysqlnd.trace
|
||||
PHP, por ejemplo <literal>MYSQL_OPT_READ_TIMEOUT</literal> se dice funcional
|
||||
únicamente con conexiones TCP/IP y, antes de MySQL 5.1.2, solo en Windows.
|
||||
Los flujos PHP, ellos, no tienen esta limitación. Consulte la documentación de los flujos en caso de duda.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="ini.mysqlnd.net-cmd-buffer-size">
|
||||
@@ -326,7 +326,7 @@ d:t:x:O,/tmp/mysqlnd.trace
|
||||
<type>int</type>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
<literal>mysqlnd</literal> asigna un buffer interno para la red de un tamaño
|
||||
de <literal>mysqlnd.net_cmd_buffer_size</literal> (en
|
||||
<filename>php.ini</filename>) bytes para cada conexión. Si una orden del
|
||||
@@ -335,19 +335,19 @@ d:t:x:O,/tmp/mysqlnd.trace
|
||||
el buffer, <literal>mysqlnd</literal> aumentará aquel a la tamaño requerido.
|
||||
Cada vez que el buffer es aumentado para una conexión,
|
||||
<literal>command_buffer_too_small</literal> será incrementado en uno.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Si <literal>mysqlnd</literal> debe 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,
|
||||
entonces debería aumentar este tamaño por omisión para evitar las reasignaciones.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
El tamaño por omisión del buffer es de 4096 bytes.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
El valor también puede ser cambiado mediante <literal>mysqli_options(link,
|
||||
MYSQLI_OPT_NET_CMD_BUFFER_SIZE, size)</literal>.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="ini.mysqlnd.net-read-buffer-size">
|
||||
@@ -356,7 +356,7 @@ d:t:x:O,/tmp/mysqlnd.trace
|
||||
<type>int</type>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Tamaño máximo del segmento en lectura al leer el cuerpo de un paquete de orden MySQL. El protocolo servidor de MySQL encapsula todas
|
||||
sus órdenes en paquetes. Los paquetes consisten en un encabezado corto
|
||||
seguido de un cuerpo que contiene las informaciones. El tamaño del cuerpo está codificado en
|
||||
@@ -366,11 +366,11 @@ d:t:x:O,/tmp/mysqlnd.trace
|
||||
<literal>mysqlnd.net_read_buffer_size</literal> bytes,
|
||||
<literal>mysqlnd</literal> debe entonces llamar a <literal>read()</literal>
|
||||
varias veces.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
El valor también puede ser cambiado mediante <literal>mysqli_options(link,
|
||||
MYSQLI_OPT_NET_READ_BUFFER_SIZE, size)</literal>.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="ini.mysqlnd.sha256-server-public-key">
|
||||
@@ -379,18 +379,18 @@ d:t:x:O,/tmp/mysqlnd.trace
|
||||
<type>string</type>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Relacionado con el plugin de autenticación SHA-256.
|
||||
Fichero que contiene la clave pública RSA en el servidor MySQL.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Los clientes pueden omitir definir una clave pública RSA y especificar
|
||||
la clave mediante la directiva de configuración PHP, o bien, definir la clave
|
||||
en el momento de la ejecución utilizando la función <function>mysqli_options</function>.
|
||||
Si ningún fichero de clave pública RSA es proporcionado por el cliente, entonces la clave
|
||||
será intercambiada conforme al procedimiento del plugin de autenticación estándar
|
||||
SHA-256.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="ini.mysqlnd.trace-alloc">
|
||||
@@ -399,8 +399,8 @@ d:t:x:O,/tmp/mysqlnd.trace
|
||||
<type>string</type>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
</para>
|
||||
<simpara>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="ini.mysqlnd.fetch_data_copy">
|
||||
@@ -409,19 +409,19 @@ d:t:x:O,/tmp/mysqlnd.trace
|
||||
<type>int</type>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Obliga a copiar los juegos de resultados desde los buffers internos hacia
|
||||
variables PHP en lugar de utilizar el mecanismo por omisión de referencia
|
||||
y copia al escribir. Consulte las,
|
||||
<link linkend="mysqlnd.memory">notas de implementación sobre la gestión de memoria</link>
|
||||
para más detalles.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Copiar los juegos de resultados en lugar de tener variables PHP que los referencian permite liberar más pronto la memoria ocupada por las variables PHP. Dependiendo del código de la API cliente, las consultas actuales y el tamaño de sus juegos de resultados, esto puede reducir la huella de memoria de mysqlnd.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
No activar con PDO_MySQL. PDO_MySQL no soporta aún este modo.
|
||||
</para>
|
||||
</simpara>
|
||||
<note>
|
||||
<simpara>Eliminado a partir de PHP 8.1.0</simpara>
|
||||
</note>
|
||||
|
||||
@@ -1,29 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: b72a6273c1f19ebdfc6a784ba66fd141c50cdc88 Maintainer: regiemix Status: ready -->
|
||||
<!-- EN-Revision: 9598935f21bc472f22383fb989625f0b22785331 Maintainer: regiemix Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<chapter xml:id="mysqlnd.incompatibilities" xmlns="http://docbook.org/ns/docbook">
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xml:id="mysqlnd.incompatibilities">
|
||||
<title>Incompatibilidades</title>
|
||||
<para>
|
||||
<simpara>
|
||||
El Driver MySQL Native es compatible en muchos casos con la librería MySQL Client
|
||||
(<literal>libmysql</literal>). Esta sección documenta las incompatibilidades
|
||||
entre estas librerías.
|
||||
</para>
|
||||
</simpara>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Los valores de tipo <literal>bit</literal> son devueltos como strings binarios
|
||||
(p.e. "\0" o "\x1F") con <literal>libmysql</literal> y como strings
|
||||
decimales (p.e. "0" o "31") con <literal>mysqlnd</literal>. Si se desea que el código
|
||||
sea compatible con ambas librerías entonces siempre se deberá devolver campos de tipo bit como
|
||||
números desde MySQL con una consulta como la siguiente:
|
||||
<literal>SELECT bit + 0 FROM table</literal>.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</chapter>
|
||||
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
|
||||
@@ -1,27 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: fa98ad518d2b960a56e44ad580907ed208ab633c Maintainer: PhilDaiguille Status: ready -->
|
||||
<!-- EN-Revision: 9598935f21bc472f22383fb989625f0b22785331 Maintainer: PhilDaiguille Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="mysqlnd.install">
|
||||
|
||||
<title>Instalación</title>
|
||||
|
||||
<para>
|
||||
<simpara>
|
||||
<emphasis role="bold">Instalación bajo Unix</emphasis>
|
||||
</para>
|
||||
</simpara>
|
||||
|
||||
<para>
|
||||
<simpara>
|
||||
Para utilizar el controlador nativo MySQL,
|
||||
PHP debe ser compilado especificando explícitamente que las extensiones de base de
|
||||
datos MySQL deben ser compiladas en relación con él. Esto se realiza mediante las opciones
|
||||
de configuración anteriores a la compilación de PHP en sí.
|
||||
</para>
|
||||
</simpara>
|
||||
|
||||
<para>
|
||||
<simpara>
|
||||
Por ejemplo, para compilar la extensión MySQL, <literal>mysqli</literal>
|
||||
y PDO MySQL utilizando el controlador nativo MySQL, la siguiente
|
||||
orden debe ser ejecutada:
|
||||
</para>
|
||||
</simpara>
|
||||
|
||||
<programlisting role="shell">
|
||||
<![CDATA[
|
||||
@@ -32,25 +32,25 @@
|
||||
]]>
|
||||
</programlisting>
|
||||
|
||||
<para>
|
||||
<simpara>
|
||||
<emphasis role="bold">Instalación bajo Windows</emphasis>
|
||||
</para>
|
||||
</simpara>
|
||||
|
||||
<para>
|
||||
<simpara>
|
||||
En las distribuciones oficiales de PHP para Windows, el
|
||||
controlador nativo MySQL está activado por defecto y no se requiere configuración
|
||||
adicional para su uso. Todas las extensiones de base de datos MySQL lo utilizarán entonces.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
<emphasis role="bold">Soporte del plugin de autenticación SHA-256</emphasis>
|
||||
</para>
|
||||
</simpara>
|
||||
|
||||
<para>
|
||||
<simpara>
|
||||
El driver nativo MySQL requiere la carga de la funcionalidad OpenSSL de PHP,
|
||||
y la activación de la conexión a MySQL mediante cuentas que utilizan
|
||||
el plugin de autenticación MySQL SHA-256. Por ejemplo, PHP podría ser configurado
|
||||
utilizando la siguiente orden:
|
||||
</para>
|
||||
</simpara>
|
||||
|
||||
<programlisting role="shell">
|
||||
<![CDATA[
|
||||
@@ -61,14 +61,14 @@
|
||||
[otras opciones]
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
<simpara>
|
||||
En Autotools, el soporte SSL extendido en <literal>mysqlnd</literal> es
|
||||
activado implícitamente durante la compilación con la extensión <literal>openssl</literal>
|
||||
utilizando la opción de configuración <option role="configure">--with-openssl</option>.
|
||||
Durante la compilación sin la extensión <literal>openssl</literal>, la opción
|
||||
de configuración <option role="configure">--with-mysqlnd-ssl</option> puede ser
|
||||
utilizada para activar explícitamente el soporte SSL extendido.
|
||||
</para>
|
||||
</simpara>
|
||||
|
||||
<simplesect role="changelog">
|
||||
&reftitle.changelog;
|
||||
|
||||
@@ -1,30 +1,29 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: e016fe67d1f58dc26592e50a244584fcfcf2604d Maintainer: PhilDaiguille Status: ready -->
|
||||
<!-- EN-Revision: 9598935f21bc472f22383fb989625f0b22785331 Maintainer: PhilDaiguille Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<chapter xml:id="mysqlnd.memory" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="mysqlnd.memory">
|
||||
<title>Gestión de la memoria</title>
|
||||
<para>
|
||||
<simpara>
|
||||
<emphasis role="bold">Introducción</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
El driver nativo MySQL gestiona la memoria de forma diferente a la biblioteca
|
||||
cliente MySQL. Las bibliotecas difieren en la forma en que la memoria
|
||||
es asignada y liberada, en la forma en que la memoria es asignada por
|
||||
fragmentos durante la lectura de los resultados desde MySQL, qué opciones
|
||||
de depuración y desarrollo existen, y cómo los resultados leídos
|
||||
desde MySQL son vinculados a las variables de usuario PHP.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Las notas siguientes son una introducción y un resumen destinados a los usuarios
|
||||
interesados en comprender el driver nativo MySQL desde el punto de vista
|
||||
del código C.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
<emphasis role="bold">Funciones utilizadas en la gestión de memoria</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Todas las asignaciones y desasignaciones se realizan utilizando las funciones
|
||||
de gestión de memoria de PHP. Sin embargo, el consumo de memoria
|
||||
de mysqlnd puede ser monitoreado utilizando llamadas a APIs de PHP, como
|
||||
@@ -37,8 +36,8 @@
|
||||
difícil. La biblioteca cliente MySQL llama directamente al gestor de memoria
|
||||
del sistema operativo, y por lo tanto, los efectos pueden ser vistos inmediatamente
|
||||
a nivel del sistema operativo.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Todas las limitaciones de memoria realizadas por PHP afectan también al driver
|
||||
nativo MySQL. Esto puede causar errores de excedente de memoria al recuperar
|
||||
juegos de resultados demasiado grandes, excediendo el tamaño de la memoria restante
|
||||
@@ -48,19 +47,19 @@
|
||||
la huella de memoria del proceso PHP puede aumentar y superar el límite de memoria
|
||||
impuesto por PHP. Además, los scripts PHP pueden analizar juegos de resultados más grandes,
|
||||
asignando así más memoria para el juego de resultados de la que el control del motor PHP permite.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Las funciones de gestión de memoria de PHP son llamadas por el driver nativo MySQL
|
||||
a través de un gestor ligero. Entre otras cosas, este gestor facilita el depuración.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
<emphasis role="bold">Gestión de los juegos de resultados</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Los diferentes servidores MySQL y las diferentes APIs de clientes se diferencian
|
||||
según el <link linkend="mysqli.quickstart.statements">buffering o no</link> de los juegos de resultados. Los juegos de resultados que no son bufferizados son transferidos línea por línea desde MySQL hacia el cliente, y el cliente recorrerá los resultados. Los resultados que son bufferizados son recuperados en su totalidad por la biblioteca cliente antes de pasarlos al cliente.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
El driver nativo MySQL utiliza flujos PHP para la comunicación en red con
|
||||
el servidor MySQL. Los resultados enviados por MySQL son recuperados desde la memoria
|
||||
buffer de los flujos de red PHP hacia la memoria buffer de resultados de mysqlnd.
|
||||
@@ -68,8 +67,8 @@
|
||||
los resultados son puestos a disposición del script PHP. La transferencia final desde la
|
||||
memoria buffer de resultados hacia las variables PHP impacta el consumo de memoria
|
||||
y esto se vuelve muy visible al utilizar juegos de resultados bufferizados.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Por omisión, el driver nativo MySQL intenta no conservar en memoria
|
||||
dos veces los resultados bufferizados. Los resultados son conservados
|
||||
una sola vez en la memoria buffer interna de resultados, así como en sus
|
||||
@@ -86,8 +85,8 @@
|
||||
La operación de copia-al-escritura también debe ser realizada si el usuario
|
||||
lee un juego de resultados en las variables PHP y libera un juego de resultado antes
|
||||
de que las variables sean eliminadas.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
En general, este mecanismo funciona bien para los scripts que leen
|
||||
un juego de resultados una sola vez, y no modifican las variables que contienen
|
||||
los resultados. Su principal desventaja es la sobrecarga de memoria causada por
|
||||
@@ -102,8 +101,8 @@
|
||||
libera el juego de resultados explícitamente, o si el driver lo libera implícitamente,
|
||||
haciendo que la memoria sea utilizada más tiempo del necesario.
|
||||
Las estadísticas también pueden ayudar a ver las operaciones de copia-al-escritura.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Un script PHP que lee muchas pequeñas líneas de un juego de resultados bufferizado
|
||||
utilizando líneas de código como <literal>while ($row = $res->fetch_assoc()) { ... }</literal>
|
||||
puede optimizar el consumo de memoria solicitando una copia en lugar de
|
||||
@@ -114,24 +113,24 @@
|
||||
la optimización del uso de memoria puede mejorar el rendimiento del sistema
|
||||
en general, aunque para un script individual, el enfoque de la copia puede ser más lento
|
||||
debido a las operaciones adicionales de asignación y copia de memoria.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
<emphasis role="bold">Supervisión y depuración</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Existen varias formas de supervisar el uso de memoria del driver nativo MySQL.
|
||||
Si el objetivo es obtener una vista rápida de alto nivel, o verificar la eficiencia
|
||||
de memoria de los scripts PHP, entonces revise las <link linkend="mysqlnd.stats">estadísticas</link>
|
||||
recopiladas por la biblioteca. Estas le permiten, por ejemplo,
|
||||
ver las consultas SQL que generan más resultados de los analizados por un script PHP.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
El rastreo de <link linkend="ini.mysqlnd.debug">depuración</link> en el historial
|
||||
puede ser configurado para registrar las llamadas al gestor de memoria. Esto puede ayudar
|
||||
a ver cuándo la memoria es asignada o liberada. Sin embargo, el tamaño de los
|
||||
fragmentos de memoria solicitados puede no estar listado.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Las versiones recientes del driver nativo MySQL intentan emular situaciones
|
||||
de excedente de memoria aleatorio. Esto es útil únicamente para los desarrolladores C
|
||||
de la biblioteca, o para los desarrolladores del <link linkend="mysqlnd.plugin">complemento</link>
|
||||
@@ -139,7 +138,7 @@
|
||||
así como para obtener más detalles sobre este mecanismo.
|
||||
Esta funcionalidad se considera privada, y puede ser modificada en cualquier momento
|
||||
sin previo aviso.
|
||||
</para>
|
||||
</simpara>
|
||||
|
||||
</chapter>
|
||||
<!-- Keep this comment at the end of the file
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 35687156f47c58e0cbc5511a9e95ab108de8faf7 Maintainer: jpberdejo Status: ready -->
|
||||
<!-- EN-Revision: 9598935f21bc472f22383fb989625f0b22785331 Maintainer: jpberdejo Status: ready -->
|
||||
<!-- Reviewed: yes Maintainer: seros -->
|
||||
<chapter xml:id="mysqlnd.notes" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="mysqlnd.notes">
|
||||
<title>Notas</title>
|
||||
<para>
|
||||
<simpara>
|
||||
En esta sección se ofrece una colección de diversas notas sobre el uso del
|
||||
Controlador Nativo de MySQL.
|
||||
</para>
|
||||
</simpara>
|
||||
<itemizedlist>
|
||||
<listitem><para>Utilizar <literal>mysqlnd</literal> significa que se están utilizando flujos
|
||||
<listitem><simpara>Utilizar <literal>mysqlnd</literal> significa que se están utilizando flujos
|
||||
PHP para la conectividad subyacente. Para <literal>mysqlnd</literal>, se debe consultar
|
||||
la documentación de flujos de PHP (<xref linkend="book.stream"/>)
|
||||
para detalles como la configuración del tiempo de espera, y no la documentación para la
|
||||
Biblioteca Cliente de MySQL.</para></listitem>
|
||||
Biblioteca Cliente de MySQL.</simpara></listitem>
|
||||
</itemizedlist>
|
||||
</chapter>
|
||||
<!-- Keep this comment at the end of the file
|
||||
|
||||
@@ -1,35 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: a714378ed87cdbdbde3b10ded183e8df7b243cb4 Maintainer: PhilDaiguille Status: ready -->
|
||||
<!-- EN-Revision: 9598935f21bc472f22383fb989625f0b22785331 Maintainer: PhilDaiguille Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<chapter xml:id="mysqlnd.overview" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="mysqlnd.overview">
|
||||
<title>Introducción</title>
|
||||
<para>
|
||||
<simpara>
|
||||
<emphasis role="bold">Lo que no es</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Aunque el driver nativo de MySQL está escrito como una extensión PHP, es importante
|
||||
señalar que no proporciona una nueva API al programador PHP. Las API para programadores
|
||||
son proporcionadas por la extensión MySQL, <literal>mysqli</literal> y PDO
|
||||
MySQL. Estas extensiones pueden ahora utilizar los servicios del driver nativo MySQL para comunicarse
|
||||
con el servidor MySQL. Por lo tanto, el driver nativo MySQL no debe ser considerado como una API.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
<emphasis role="bold">¿Por qué utilizarlo?</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Utilizar el driver nativo de MySQL ofrece numerosas ventajas en comparación con
|
||||
la biblioteca cliente de MySQL.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
La antigua biblioteca cliente de MySQL fue escrita por MySQL AB (ahora
|
||||
parte de Oracle Corporation) y, por lo tanto, fue publicada bajo la licencia MySQL,
|
||||
lo que tuvo como consecuencia la desactivación del soporte de MySQL por defecto
|
||||
en PHP. Dado que el driver nativo de MySQL fue desarrollado como parte integral
|
||||
del proyecto PHP, se publica bajo la licencia PHP, lo que resuelve los problemas
|
||||
de licencia que existían en el pasado.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Además, anteriormente, era necesario compilar las extensiones de base de datos
|
||||
MySQL en relación con una copia de la biblioteca cliente de MySQL, lo que significaba que
|
||||
se debía tener instalado MySQL en la máquina donde se compilaba PHP a partir de los fuentes. Por lo tanto,
|
||||
@@ -37,8 +37,8 @@
|
||||
al inicio, los cuales debían estar obligatoriamente instalados en el sistema. Con el driver nativo de MySQL, esto ya no es necesario
|
||||
ya que está incluido en la distribución estándar. Por lo tanto, ya no será necesario tener instalado MySQL para compilar PHP o ejecutar aplicaciones PHP
|
||||
que hagan uso de una base de datos.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Dado que el driver nativo de MySQL está escrito como una extensión PHP, está íntimamente
|
||||
ligado al núcleo de PHP. Esto implica una mejor eficiencia, especialmente en lo que respecta
|
||||
al uso de la memoria, ya que el driver utiliza la asignación de memoria de PHP y, por
|
||||
@@ -46,72 +46,72 @@
|
||||
un rendimiento igual o mejor que con la biblioteca cliente de MySQL, ya que el uso
|
||||
de la memoria es mucho más eficiente. El hecho de que, al utilizar la biblioteca cliente
|
||||
de MySQL, cada registro se almacene dos veces en memoria, mientras que el cliente nativo de MySQL solo lo almacena una vez, es un buen ejemplo de una buena gestión de la memoria.
|
||||
</para>
|
||||
</simpara>
|
||||
<note>
|
||||
<title>Supervisión del uso de memoria</title>
|
||||
<para>
|
||||
<simpara>
|
||||
Debido a que el driver nativo de MySQL utiliza el sistema de gestión de memoria
|
||||
de PHP, su uso de memoria puede ser supervisado con la función
|
||||
<function>memory_get_usage</function>. Esto no es posible
|
||||
con la biblioteca libmysqlclient ya que utiliza la función C malloc() en su lugar.
|
||||
</para>
|
||||
</simpara>
|
||||
</note>
|
||||
<para>
|
||||
<simpara>
|
||||
<emphasis role="bold">Funcionalidades especiales</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
El driver nativo de MySQL también proporciona algunas funcionalidades especiales no
|
||||
disponibles con la biblioteca cliente de MySQL, listadas a continuación:
|
||||
</para>
|
||||
</simpara>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Conexiones persistentes mejoradas
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
La función especial <function>mysqli_fetch_all</function>
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Llamadas a las estadísticas de rendimiento:
|
||||
<function>mysqli_get_client_stats</function>,
|
||||
<function>mysqli_get_connection_stats</function>
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>
|
||||
<simpara>
|
||||
Las estadísticas de rendimiento pueden ser muy útiles para identificar
|
||||
cuellos de botella de rendimiento.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
El driver nativo de MySQL también proporciona conexiones persistentes al utilizarlo
|
||||
con la extensión <literal>mysqli</literal>.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
<emphasis role="bold">Soporte de SSL</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
El driver nativo de MySQL (MySQL Native Driver) soporta SSL.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
<emphasis role="bold">Soporte del protocolo comprimido</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
El driver nativo de MySQL soporta el protocolo cliente/servidor MySQL comprimido.
|
||||
La extensión <literal>ext/mysqli</literal>, si está configurada para utilizar el driver
|
||||
nativo de MySQL, también puede beneficiarse de esta funcionalidad.
|
||||
Es importante señalar que <literal>PDO_MYSQL</literal> no soporta
|
||||
<emphasis>EN ABSOLUTO</emphasis> la compresión cuando se utiliza con mysqlnd.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
<emphasis role="bold">Soporte de pipes nombrados</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Los pipes nombrados pueden ser utilizados para conectarse bajo Windows.
|
||||
</para>
|
||||
</simpara>
|
||||
</chapter>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
|
||||
@@ -1,39 +1,39 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: d617b26e4b9db6f2a4a39e5bd45bb09e2dc91100 Maintainer: jpberdejo Status: ready -->
|
||||
<!-- EN-Revision: 9598935f21bc472f22383fb989625f0b22785331 Maintainer: jpberdejo Status: ready -->
|
||||
<!-- Reviewed: yes Maintainer: seros -->
|
||||
<chapter xml:id="mysqlnd.persist" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="mysqlnd.persist">
|
||||
<title>Conexiones persistentes</title>
|
||||
<para>
|
||||
<simpara>
|
||||
<emphasis role="bold">Utilizar conexiones persistentes</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Si <literal>mysqli</literal> se utiliza con <literal>mysqlnd</literal>,
|
||||
cuando se crea una conexión persistente, se genera una llamada
|
||||
<literal>COM_CHANGE_USER</literal>
|
||||
(<literal>mysql_change_user()</literal>) en el servidor. Esto
|
||||
asegura que la re-autenticación de la conexión se lleva a cabo.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Dado que hay una cierta sobrecarga asociada con la llamada
|
||||
<literal>COM_CHANGE_USER</literal>, es posible apagar
|
||||
esto en el tiempo de compilado. La reutilización de una conexión persistente entonces
|
||||
generará una llamada <literal>COM_PING</literal> (<literal>mysql_ping</literal>)
|
||||
para simplemente probar si la conexión es reusable.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
La generación de <literal>COM_CHANGE_USER</literal> se puede apagar
|
||||
con el marcador de compilación
|
||||
<literal>MYSQLI_NO_CHANGE_USER_ON_PCONNECT</literal>. Por ejemplo:
|
||||
</para>
|
||||
</simpara>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
shell# CFLAGS="-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT" ./configure --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql/bin/mysql_config --enable-debug && make clean && make -j6
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
<simpara>
|
||||
O, alternativamente:
|
||||
</para>
|
||||
</simpara>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
shell# export CFLAGS="-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT"
|
||||
@@ -42,12 +42,12 @@ shell# make clean
|
||||
shell# make
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
<simpara>
|
||||
Observe que solamente <literal>mysqli</literal> sobre <literal>mysqlnd</literal>
|
||||
utiliza <literal>COM_CHANGE_USER</literal>. Otra combinación de
|
||||
extensión-controlador emplea <literal>COM_PING</literal> en el uso inicial de una
|
||||
conexión persistente.
|
||||
</para>
|
||||
</simpara>
|
||||
</chapter>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: a0eca86848c615986f393020ef68a1f69d33e0f2 Maintainer: PhilDaiguille Status: ready -->
|
||||
<!-- EN-Revision: 9598935f21bc472f22383fb989625f0b22785331 Maintainer: PhilDaiguille Status: ready -->
|
||||
<!-- Reviewed: yes -->
|
||||
<chapter xml:id="mysqlnd.stats" xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="mysqlnd.stats">
|
||||
<title>Estadísticas</title>
|
||||
|
||||
<para>
|
||||
@@ -1508,30 +1508,30 @@ $link->real_connect(/* ... */);
|
||||
<title>Ejemplos de uso</title>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Verificar si PHP envía ciertos comandos a MySQL, por ejemplo,
|
||||
verificar si un cliente envía <literal>COM_PROCESS_KILL</literal>
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Calcular el número promedio de ejecuciones de comandos preparados
|
||||
comparando <literal>COM_EXECUTE</literal> con
|
||||
<literal>COM_PREPARE</literal>
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Verificar si PHP ha ejecutado declaraciones SQL no preparadas
|
||||
verificando si <literal>COM_QUERY</literal> es cero
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Identificar los scripts PHP que ejecutan un número excesivo de declaraciones SQL
|
||||
verificando <literal>COM_QUERY</literal> y
|
||||
<literal>COM_EXECUTE</literal>
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</example>
|
||||
|
||||
Reference in New Issue
Block a user