mysqlnd_qc_get_cache_info

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_get_cache_infoDevuelve información sobre el gestor en uso, el número de entradas de la caché y sobre las entradas de la caché, si está disponible

Descripción

mysqlnd_qc_get_cache_info ( void ) : array

Parámetros

Esta función no tiene parámetros.

Valores devueltos

Devuelve información sobre el gestor en uso, el número de entradas de la caché y sobre las entradas de la caché, si está disponible. Si lo está, los datos serán devueltos para las entradas de la caché sujetos al gestor de almacenamiento activo. Los gestores de almacenamiento son libres de devolver cualquier datos. Se recomienda que los gestores de almacenamiento devuelvan al menos los datos proporcionados por el gestor predeterminado, si fuera téctinamente posible.

El ámbito de la información es el proceso de PHP. Dependiendo del modelo de desarrollo de PHP, un proceso podría servir una o más peticiones.

Los valores se acumulan para todas las actividades de la caché en función de cada gestor de almacenamiento. No es posible indicar cuántas consultas se orinigan desde mysqli, PDO_MySQL o mysql. Las llamadas a al API contribuyen a los valores de los datos acumulados. Use mysqlnd_qc_get_core_stats() para obtener los tiempos de los datos acumulados para todos los gestores de almacenamiento.

Array de información de la caché

handler string

El gestor de almacenamiento activo.

Todos los gestores de almacenamiento. Desde 1.0.0.

handler_version string

La versión del gestor de almacenamiento activo.

Todos los gestores de almacenamiento. Desde 1.0.0.

num_entries int

El número de entradas de la caché. El valor depende del gestor de almacenamiento en uso.

Los gestores de almacenamiento default, APC y SQLite proporcinan el número real de entradas de la caché.

El gestor de almacenamiento MEMCACHE siempre devuelve 0. MEMCACHE no admite el conteo del número de entradas de la caché.

Si se utiliza un gestor definido por el usuario, se informará del número de entradas de la propiedad data.

Desde 1.0.0.

data array

La versión del gestor de almacenamiento activo.

Datos adicionales dependientes del gestor de almacenamiento sobre las entradas de la caché. A los gestores de almacenamiento se les solicita que proporcionen información similar y comparable. Un gestor de almacenamiento definido por el usuario es libre de devolver cualesquiera datos.

Desde 1.0.0.

El gestor de almacenamiento default proporciona la siguiente información para la propiedad data.

La propiedad data contiene un hash. El hash es indexado por el identificador interno de entradas de la caché del gestor de almacenamiento. El identificador de entradas de la caché es legible por los humanos y contiene la cadena de consulta que dirige la entrada de la caché. Por favor, véase también el ejemplo de abajo. Se proporcionan los siguientes datos para cada entrada de la caché.

statistics array

Estadísticas de la entrada de la caché.

Desde 1.0.0.

Propiedad Descripción Versión
rows Número de filas del conjunto de resultados almacenado en caché. Desde 1.0.0.
stored_size El tamaño del conjunto de resultados almacenado en caché en bytes. Éste es el tamaño de la carga útil. El valor no es conveniente para calcular el consumo total de memoria de todas las entradas de la caché incluyendo la carga adicional de las entradas de la caché. Desde 1.0.0.
cache_hits Cuantas veces se ha devuelto una entrada de la caché. Desde 1.0.0.
run_time Tiempo de ejecución de la sentencia a la que pertence la entrada de la caché. Éste es el tiempo de ejecución de la sentencia sin almacenar en la caché. Es el tiempo transcurrido entre el envío de la sentencia y la recepción de MySQL de una réplica desde MySQL. El tiempo ahorrado usando el complemento de caché de consultas se puede calcular de esta manera: cache_hits * ((run_time - avg_run_time) + (store_time - avg_store_time)). Desde 1.0.0.
store_time Tiempò de almacenamiento del conjunto de resultados de la sentencia a la que pertenece la entrada de la caché. Éste es el tiempo que se toma en obtener y almacenar los resultados de una sentencia no almacenada en caché. Desde 1.0.0.
min_run_time Tiempo mínimo de ejecución de la sentencia almacenada en caché. Cuánto tiempo se tarda en buscar la sentencia en la caché. Desde 1.0.0.
min_store_time Tiempo mínimo de almacenamiento de la sentencia almacenada en la caché. El tiempo que toma la obtención del conjunto de resultados almacenado en caché desde el medio de almacenamiento y decoficación. Desde 1.0.0.
avg_run_time Tiempo de ejecución medio de la sentencia almacenada en caché. Desde 1.0.0.
avg_store_time Tiempo de almacenamiento medio de la sentencia almacenada en caché. Desde 1.0.0.
max_run_time Tiempo de ejecución medio de la sentencia almacenada en caché. Desde 1.0.0.
max_store_time Tiempo de almacenamiento medio de la sentencia almacenada en caché. Desde 1.0.0.
valid_until Marca de tiempo del momento en que la entrada de la caché expira. Desde 1.1.0.
metadata array

Metadatos de la entrada de la caché. Éstos son los metadatos proporcionados por MySQL junto con el conjunto de resultados de la sentencia en cuestión. Diferentes versiones del servidor MySQL podrían devolver diferentes metadatos. A diferencia de algunas extensiones de MySQL para PHP, no se intentan ocultar las dependencias de la versión del servidor MySQL y los detalles de la versión desde el llamador. Por favor, consulte la documentación de la API en C de MySQL del servidor de MySQL en uso para más detalles.

La lista de metadatos contiene una entrada por cada columna.

Desde 1.0.0.

Propiedad Descripción Versión
name El nombre del campo. Dependiendo de la versión de MySQL, podría ser el nombre del alias del campo. Desde 1.0.0.
org_name El nombre del campo. Desde 1.0.0.
table El nombre de la tabla. Si se usó un alias para la tabla, esta propiedad normalmente contendrá dicho alias. Desde 1.0.0.
org_table El nombre de la tabla. Desde 1.0.0.
db El nombre de la base de datos/esquema. Desde 1.0.0.
max_length El ancho máximo del campo. Los detalles podrían variar según la versión del servidor MySQL. Desde 1.0.0.
length El ancho del campo. Los detalles podrían variar según la versión del servidor MySQL. Desde 1.0.0.
type El tipo de datos del campo. Los detalles podrían variar según el servidor MySQL en uso. Éste es el valor constante del tipo de la API en C de MySQL. Se recomienda usar las constantes de tipo proporcionadas por la extensión mysqli para comprobar su significado. No se deberían probar ciertos valores de tipos comparandos con ciertos números. Desde 1.0.0.

El gestor de almacenamiento APC devuelve la misma información para la propiedad data, excepto sin metadata. Los metadata de una entrada de la caché se establecen a NULL.

El gestor de almacenamiento MEMCACHE no rellena la propiedad data. Las estadísticas no están disponibles en base cada entrada de la caché con el gestor de almacenamiento MEMCACHE.

Un gestor de almacenamiento definido por el usuario es libre de proporcionar cualquier dato.

Ejemplos

Ejemplo #1 Ejemplo de mysqlnd_qc_get_cache_info()

El ejemplo muestra la salida desde el gestor de almacenamiento interno predeterminado (default). Los demás gestores de almacenamiento podría notificar datos diferentes.

<?php
/* Rellenar la caché, p.ej. usando mysqli */
$mysqli = new mysqli("host""usuario""contraseña""esquema");
$mysqli->query("/*" MYSQLND_QC_ENABLE_SWITCH "*/SELECT id FROM test");

/* Mostrar la información de la caché */
var_dump(mysqlnd_qc_get_cache_info());
?>

El resultado de los ejemplos sería:

array(4) {
 ["num_entries"]=>
 int(1)
 ["handler"]=>
 string(7) "default"
 ["handler_version"]=>
 string(5) "1.0.0"
 ["data"]=>
 array(1) {
   ["Localhost via UNIX socket 3306 user schema|/*qc=on*/SELECT id FROM test"]=>
   array(2) {
     ["statistics"]=>
     array(11) {
       ["rows"]=>
       int(6)
       ["stored_size"]=>
       int(101)
       ["cache_hits"]=>
       int(0)
       ["run_time"]=>
       int(471)
       ["store_time"]=>
       int(27)
       ["min_run_time"]=>
       int(0)
       ["max_run_time"]=>
       int(0)
       ["min_store_time"]=>
       int(0)
       ["max_store_time"]=>
       int(0)
       ["avg_run_time"]=>
       int(0)
       ["avg_store_time"]=>
       int(0)
     }
     ["metadata"]=>
     array(1) {
       [0]=>
       array(8) {
         ["name"]=>
         string(2) "id"
         ["orig_name"]=>
         string(2) "id"
         ["table"]=>
         string(4) "test"
         ["orig_table"]=>
         string(4) "test"
         ["db"]=>
         string(4) "schema"
         ["max_length"]=>
         int(1)
         ["length"]=>
         int(11)
         ["type"]=>
         int(3)
       }
     }
   }
 }
}

Ver también