(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) }