(PECL mysqlnd_qc >= 1.0.0)
mysqlnd_qc_get_core_stats — Estadísticas recopiladas por el núcleo de la caché de consultas
Devuelve un array con las estadísticas recopiladas por el núcleo del complemento de caché. Se notificarán los mismos campos de datos para cualquier gestor de almacenamiento ya que los datos son recopilados por el núcleo.
El ajuste de configuraión de PHP mysqlnd_qc.collect_statistics controla la recopilación de estadísticas. Dicha recopilación está deshabilitada de forma predeterminada por motivos de rendimiento. La deshabilitación de la recopilación de estadísticas también deshabilitará la recopilación de las estadísticas relacionadas con los tiempos.
El ajuste de configuración de PHP mysqlnd_qc.collect_time_statistics controla la recopilación de estadísticas relacionadas con los tiempos.
El ámbito de las estadísticas del núcleo es el proceso de PHP. Dependiendo del modelo de desarrollo un proceso de PHP podría manejar una o múltiples peticiones.
Las estadísticas se acumulan para todas las entradas de la caché y para todos los gestores de almacenamiento. No es posible indicar cuántas consultas originadas desde las llamadas a las APIs de mysqli, PDO_MySQL o mysql han contribuido a los valores de los datos acumulados.
Esta función no tiene parámetros.
Array de estadísticas del núcleo
Estadística | Descripción | Versión |
---|---|---|
cache_hit | La sentencia se considera almacenable en caché y los datos almacenados en caché han sido reutilizados. La sentencia se considera almacenable en caché y ocurrió una no coincidencia con la caché, aunque alguien almacenó en caché dicha sentencia mientras se procesaba y por lo tanto se puuede obtener el resultado desde la caché refrescada. | Desde 1.0.0. |
cache_miss |
La sentencia es considerada almacenable en caché...
|
Desde 1.0.0. |
cache_put | La sentencia se considera almacenable en caché y ha sido añadida a la caché. Se ha de tener cuidado al calcular las estadísticas derivadas. Los gestores de almacenamiento con un tiempo de vida de almacenamiento más allá del ámbito del proceso podría notificar que cache_put = 0 junto con cache_hit > 0, si otro proceso ha rellenado la caché. Se podría usar num_entries desde mysqlnd_qc_get_cache_info() si el gestor lo admite (default, APC). | Desde 1.0.0. |
query_should_cache | La sentencia se considera almacenable en caché basándose en el análisis de la cadena de consulta. La sentencia podría o no añadirse a la caché. Véase también cache_put. | Desde 1.0.0. |
query_should_not_cache | La sentencia se considera no almacenable en caché basándose en el análisis de la cadena de consulta. | Desde 1.0.0. |
query_not_cached | La sentencia se considera no almacenable en caché o sí se considera pero el gestor de almacenamiento no ha devuelto una clave hash para ella. | Desde 1.0.0. |
query_could_cache |
La sentencia se considera almacenable en caché...
|
Desde 1.0.0. |
query_found_in_cache | La sentencia se considera almacenable en caché y se ha encontrado en la misma, pero no se han reproducido los datos de la caché aún y no se ha enviado el conjunto de resultados al cliente todavía. Esto no se considera una coincidencia con la caché ya que el cliente no habría obtenido el resultado o los datos almacenados en la caché podrían ser defectuosos. | Desde 1.0.0. |
query_uncached_other | La sentencia es considerada almacenable en caché y podría o no encontrarse ya en la misma, pero la reproducción de los datos almacenados en caché ha fallado, no hay ningún conjunto de resultados disponible, u ocurrió algún otro error. | |
query_uncached_no_table | Statement has not been cached because the result set has at least one column which has no table name in its meta data. An example of such a query is SELECT SLEEP(1). To cache those statements you have to change default value of the PHP configuration directive mysqlnd_qc.cache_no_table and set mysqlnd_qc.cache_no_table = 1. Often, it is not desired to cache such statements. | Desde 1.0.0. |
query_uncached_use_result | La sentencia habría sido almacenada en caché si se hubiera usado un conjunto de resultados almacenado en búfer. La situación se considera también como una no coincidencia con la caché, por lo que cache_miss tambén serán incrementado. | Desde 1.0.0. |
query_aggr_run_time_cache_hit | Tiempo de ejecución (ms) acumulado de todas las consultas almacenadas en caché. Las consultas almacenadas en caché son aquellas que han incrementado cache_hit. | Desde 1.0.0. |
query_aggr_run_time_cache_put | Tiempo de ejecución (ms) acumulado de todas las consultas no almacenadas en caché que han sido colocadas en la misma. Véase también cache_put. | Desde 1.0.0. |
query_aggr_run_time_total | Tiempo de ejecución (ms) acumulado de todas las consultas no almacenadas en caché que han sido inspeccionadas y ejecutadas por la caché de consultas. | Desde 1.0.0. |
query_aggr_store_time_cache_hit | Tiempo de almacenamiento (ms) acumulado de todas las consultas almacenadas en caché. Las consultas almacenadas en caché son aquellas que han incrementado cache_hit. | Desde 1.0.0. |
query_aggr_store_time_cache_put | Tiempo de almacenamiento (ms) acumulado de todas las consultas no almacenadas en caché que han sido colocadas en la misma. Véase también cache_put. | Desde 1.0.0. |
query_aggr_store_time_total | Tiempo de almacenamiento (ms) acumulado de todas las consultas no almacenadas en caché que han sido inspeccionadas y ejecutadas por la caché de consultas. | Desde 1.0.0. |
receive_bytes_recorded | El tráfico de red entrante registrado (bytes) enviado desde MySQL a PHP. El tráfico podría o no haber sido añadido a la caché. El tráfico es el total de todas las consultas sin tener en cuenta si se almacenaron o no en caché. | Desde 1.0.0. |
receive_bytes_replayed | El tráfico de red reproducido durante el almacenamiento de la caché. Es la cantidad total de tráfico entrante ahorrado debido al uso del complemento de caché de consultas. | Desde 1.0.0. |
send_bytes_recorded | El tráfico de red saliente registrado (bytes) enviado desde MySQL a PHP. El tráfico podría o no haber sido añadido a la caché. El tráfico es el total de todas las consultas sin tener en cuenta si se almacenaron o no en caché. | Desde 1.0.0. |
send_bytes_replayed | El tráfico de red reproducido durante el almacenamiento de la caché. Es la cantidad total de tráfico saliente ahorrado debido al uso del complemento de caché de consultas. | Desde 1.0.0. |
slam_stale_refresh | El número de no coincidencias con la caché que desencadenaron el servicio de datos antiguos hasta que el cliente ocasionó que la no coincidencia con la caché refrescara la entrada de la caché. | Desde 1.0.0. |
slam_stale_hit | El número de coincidencias con la caché mientras se refrescaba una entrada antigua de la misma. | Desde 1.0.0. |
Ejemplo #1 Ejemplo de mysqlnd_qc_get_core_stats()
<?php
/* Habilitar la recopilación de estadísticas - predeterminado: deshabilitada */
ini_set("mysqlnd_qc.collect_statistics", 1);
/* Habilitar la recopilación de todos los tiempos relacionados con estadísticas -
predeterminado: habilitado pero invalidado por mysqlnd_qc.collect_statistics = 0 */
ini_set("mysqlnd_qc.collect_time_statistics", 1);
/* Rellenar la cacé, p.ej. usando mysqli */
$mysqli = new mysqli('host', 'usuario', 'contraseña', 'esquema');
/* No coincide con la caché y se coloca en la misma */
$mysqli->query("/*qc=on*/SELECT id FROM test");
/* Coincide con la caché */
$mysqli->query("/*qc=on*/SELECT id FROM test");
/* Mostrar las estadísticas del núcleo */
var_dump(mysqlnd_qc_get_core_stats());
?>
El resultado de los ejemplos sería:
array(26) { ["cache_hit"]=> string(1) "1" ["cache_miss"]=> string(1) "1" ["cache_put"]=> string(1) "1" ["query_should_cache"]=> string(1) "2" ["query_should_not_cache"]=> string(1) "0" ["query_not_cached"]=> string(1) "0" ["query_could_cache"]=> string(1) "2" ["query_found_in_cache"]=> string(1) "1" ["query_uncached_other"]=> string(1) "0" ["query_uncached_no_table"]=> string(1) "0" ["query_uncached_no_result"]=> string(1) "0" ["query_uncached_use_result"]=> string(1) "0" ["query_aggr_run_time_cache_hit"]=> string(1) "4" ["query_aggr_run_time_cache_put"]=> string(3) "395" ["query_aggr_run_time_total"]=> string(3) "399" ["query_aggr_store_time_cache_hit"]=> string(1) "2" ["query_aggr_store_time_cache_put"]=> string(1) "8" ["query_aggr_store_time_total"]=> string(2) "10" ["receive_bytes_recorded"]=> string(2) "65" ["receive_bytes_replayed"]=> string(2) "65" ["send_bytes_recorded"]=> string(2) "29" ["send_bytes_replayed"]=> string(2) "29" ["slam_stale_refresh"]=> string(1) "0" ["slam_stale_hit"]=> string(1) "0" ["request_counter"]=> int(1) ["process_hash"]=> int(3547549858) }