PHP 8.5.0 Alpha 1 available for testing

Configuración en tiempo de ejecución

El comportamiento de estas funciones se ve afectado por la configuración de php.ini.

Opciones de configuración de MySQL Native Driver
Nombre Por defecto Cambiable Historial de cambios
mysqlnd.collect_statistics "1" INI_SYSTEM  
mysqlnd.collect_memory_statistics "0" INI_SYSTEM  
mysqlnd.debug "" INI_SYSTEM  
mysqlnd.log_mask 0 INI_ALL  
mysqlnd.mempool_default_size 16000 INI_ALL  
mysqlnd.net_read_timeout "86400" INI_ALL Antes de PHP 7.2.0 el valor por omisión era "31536000" y la variabilidad era INI_SYSTEM
mysqlnd.net_cmd_buffer_size "4096" INI_SYSTEM  
mysqlnd.net_read_buffer_size "32768" INI_SYSTEM  
mysqlnd.sha256_server_public_key "" INI_PERDIR  
mysqlnd.trace_alloc "" INI_SYSTEM  
mysqlnd.fetch_data_copy 0 INI_ALL Eliminado a partir de PHP 8.1.0
Para más detalles y definiciones de los modos de INI_*, vea Dónde una directiva de configuración puede ser modificada.

He aquí una breve explicación de las directivas de configuración.

mysqlnd.collect_statistics bool

Activa la recolección de diferentes estadísticas del cliente a las cuales se puede acceder mediante mysqli_get_client_stats(), mysqli_get_connection_stats(), y que también se describen en la sección mysqlnd de la salida de la función phpinfo().

Este parámetro activa todas las estadísticas de MySQL Native Driver excepto las relativas a la gestión de la memoria.

mysqlnd.collect_memory_statistics bool

Activa la recolección de diferentes estadísticas concernientes a la memoria que pueden ser consultadas mediante mysqli_get_client_stats(), mysqli_get_connection_stats(), y que también se muestran en la sección mysqlnd de la salida de la función phpinfo().

Este parámetro activa las estadísticas de gestión de la memoria entre las estadísticas proporcionadas por MySQL Native Driver.

mysqlnd.debug string

Registra las comunicaciones provenientes de cualquier extensión que utilice mysqlnd.

El formato de esta directiva es mysqlnd.debug = "option1[,parameter_option1][:option2[,parameter_option2]]".

Las opciones de formato de strings son las siguientes:

  • 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.

  • a[,file] - Añade la traza a un fichero.

  • 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.

  • 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.

  • F - Marca cada línea de depuración con el nombre del fichero fuente que contiene la macro que causa esta salida.

  • i - Marca cada línea de depuración con el PID.

  • 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.

  • n - Marca cada línea de depuración con la profundidad actual de la función.

  • o[,file] - Similar a a[,file] pero sobrescribe los ficheros en lugar de complementarlos.

  • O[,file] - Similar a A[,file] pero sobrescribe los ficheros en lugar de complementarlos.

  • t[,N] - Activa el trazado del flujo de control de las funciones. La profundidad máxima se especifica mediante N, por omisión 200.

  • x - Activa el perfilado.

  • m - Trazar las asignaciones y desasignaciones de memoria.

Ejemplo:

d:t:x:O,/tmp/mysqlnd.trace

Nota:

Esta característica solo está disponible para las versiones de depuración de PHP.

mysqlnd.log_mask int

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.

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.

mysqlnd.mempool_default_size int

Tamaño por omisión de la cola de memoria mysqlnd, utilizada por los juegos de resultados.

mysqlnd.net_read_timeout int

mysqlnd y la MySQL Client Library, libmysqlclient utilizan API de red diferentes. mysqlnd utiliza los flujos PHP, mientras que libmysqlclient utiliza su propia implementación basada en el sistema. PHP, por omisión, utiliza un timeout de lectura de 60s. Esto utilizando el parámetro de php.ini, default_socket_timeout. Esto se aplica a todos los flujos que no especifican un timeout por omisión. mysqlnd no afecta ningún otro valor y por lo tanto las consultas largas pueden verse desconectadas después de default_socket_timeout segundos con el resultado de un mensaje de error 2006 - MySQL Server has gone away. La MySQL Client Library afecta un timeout por omisión de 24 * 3600 segundos (1 día) y espera otros timeouts, como los de TCP/IP. mysqlnd utiliza ahora el mismo timeout muy largo. El valor es configurable mediante el parámetro php.ini mysqlnd.net_read_timeout. mysqlnd.net_read_timeout es por lo tanto utilizado por cualquier extensión (ext/mysql, ext/mysqli, PDO_MySQL) que se basa en mysqlnd. mysqlnd indica a los flujos PHP utilizar mysqlnd.net_read_timeout. Tenga en cuenta que puede haber diferencias sutiles entre MYSQL_OPT_READ_TIMEOUT de la MySQL Client Library y los flujos PHP, por ejemplo MYSQL_OPT_READ_TIMEOUT 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.

mysqlnd.net_cmd_buffer_size int

mysqlnd asigna un buffer interno para la red de un tamaño de mysqlnd.net_cmd_buffer_size (en php.ini) bytes para cada conexión. Si una orden del protocolo MySQL Client Server, por ejemplo, COM_QUERY (consulta normal), no cabe en el buffer, mysqlnd aumentará aquel a la tamaño requerido. Cada vez que el buffer es aumentado para una conexión, command_buffer_too_small será incrementado en uno.

Si mysqlnd debe aumentar el buffer más allá de su tamaño inicial de mysqlnd.net_cmd_buffer_size bytes para casi todas las conexiones, entonces debería aumentar este tamaño por omisión para evitar las reasignaciones.

El tamaño por omisión del buffer es de 4096 bytes.

El valor también puede ser cambiado mediante mysqli_options(link, MYSQLI_OPT_NET_CMD_BUFFER_SIZE, size).

mysqlnd.net_read_buffer_size int

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 el encabezado. mysqlnd lee el cuerpo en forma de segmentos de MIN(header.size, mysqlnd.net_read_buffer_size) bytes. Si el cuerpo de un paquete es más grande que mysqlnd.net_read_buffer_size bytes, mysqlnd debe entonces llamar a read() varias veces.

El valor también puede ser cambiado mediante mysqli_options(link, MYSQLI_OPT_NET_READ_BUFFER_SIZE, size).

mysqlnd.sha256_server_public_key string

Relacionado con el plugin de autenticación SHA-256. Fichero que contiene la clave pública RSA en el servidor MySQL.

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 mysqli_options(). 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.

mysqlnd.trace_alloc string

mysqlnd.fetch_data_copy int

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, notas de implementación sobre la gestión de memoria para más detalles.

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.

No activar con PDO_MySQL. PDO_MySQL no soporta aún este modo.

Nota: Eliminado a partir de PHP 8.1.0

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top