(PECL mysqlnd_qc >= 1.0.0)
mysqlnd_qc_get_cache_info — 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
Esta función no tiene parámetros.
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 base a 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.
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ían:
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) } } } } }