Fonctions mysqlnd_qc
PHP Manual

mysqlnd_qc_get_cache_info

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_get_cache_infoRetourne des informations sur le gestionnaire courant

Description

array mysqlnd_qc_get_cache_info ( void )

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne des informations sur le gestionnaire courant, le nombre d'entrées du cache ainsi que les entrées du cache, si disponible. Les données retournées depuis les entrées du cache dépendent du gestionnaire de stockage actif. Le gestionnaire de stockage est libre de retourner n'importe quelle donnée. Les gestionnaires de stockage sont invités à retourner au moins les données fournies par le gestionnaire par défaut, si c'est techniquement possible.

Le scope de l'information est le processus PHP. Suivant le modèle de déploiement PHP, un processus peut servir une ou plusieurs requêtes web.

Les valeurs sont aggrégées pour toutes les activités du cach par gestionnaire de stockage. Il n'est pas possible de dire le nombre de requêtes provenant de mysqli, PDO_MySQL ou mysql. Les appels API ont contribués aux valeurs des données aggrégées. Utilisez la fonction mysqlnd_qc_get_core_stats() pour récupérer les données aggrégées pour tous les gestionnaires de stockage.

Tableau des informations du cache

handler string

Le gestionnaire de stockage actif.

Tout gestionnaire de stockage. Depuis 1.0.0.

handler_version string

La version du gestionnaire de stockage actif.

Tout gestionnaire de stockage. Depuis 1.0.0.

num_entries int

Le nombre d'entrées dans le cache. La valeur dépend du gestionnaire de stockage utilisé.

Par défaut, les gestionnaires de stockage APC et SQLite fournissent le nombre actuel d'entrées dans le cache.

Le gestionnaire de stockage MEMCACHE retourne toujours 0. MEMCACHE ne suppose pas le comptage du nombre d'entrées dans le cache.

Si un gestionnaire de stockage défini par l'utilisateur est utilisé, le nombre d'entrées de la propriété data sera retourné.

Depuis 1.0.0.

data array

La version du gestionnaire de stockage actif.

Certains gestionnaires de stockage dépendant des données contenues dans les entrées du cache. Le gestionnaire de stockage est sollicité pour fournir des informations similaires et comparables. Un gestionnaire de stockage défini par l'utilisateur est libre de retourner n'importe quelle donnée.

Depuis 1.0.0.

Les informations suivantes sont fournies par le gestionnaire de stockage par défaut pour la propriété data.

La proriété data contient un hashage. Ce hashage est indexé par l'identifiant de l'entrée du cache interne du gestionnaire de stockage. L'identifiant de l'entrée du cache est humainement lisible et contient la chaîne de requête correspondante à l'entrée du cache. Reportez-vous à l'exemple ci-dessous. Les données suivantes sont fournies pour chaque entrée du cache.

statistics array

Statistiques de l'entrée du cache.

Depuis 1.0.0.

Propriété Description Version
rows Nombre de lignes contenues dans le jeu de résultats mis en cache. Depuis 1.0.0.
stored_size La taille du jeu de résultats mis en cache, en octets. C'est la taille occupée en charge. Cette valeur n'est pas pertinante pour calculer le nombre total de mémoires consommées par toutes les entrées du cache, incluant les données administratives des entrées de cache. Depuis 1.0.0.
cache_hits Le nombre de fois que l'entrée du cache a été servie. Depuis 1.0.0.
run_time Durée d'exécution de la requête pour cette entrée du cache. C'est la durée d'exécution de la requête non mise en cache. C'est le temps entre l'envoi de la requête MySQL et la réponse de MySQL. Le temps gagné en utilisant le plugin de mise en cache de requêtes peut être calculé ainsi : cache_hits * ((run_time - avg_run_time) + (store_time - avg_store_time)). Depuis 1.0.0.
store_time Durée de stockage du jeu de résultats des requêtes appartenant à l'entrée du cache. C'est la durée de récupération et de stockage des résultats de requêtes non mises en cache. Depuis 1.0.0.
min_run_time Temps minimal d'exécution des requêtes mises en cache. C'est le temps de recherche de la requête dans le cache. Depuis 1.0.0.
min_store_time Temps minimal de stockage des requêtes mises en cache. Le temps prit pour récupérer le jeu de résultats du cache depuis le médium de stockage et de le décoder. Depuis 1.0.0.
avg_run_time Temps d'exécution moyen de la requête mise en cache. Depuis 1.0.0.
avg_store_time Temps de stockage moyen de la requête mise en cache. Depuis 1.0.0.
max_run_time Temps d'exécution moyen de la requête mise en cache. Depuis 1.0.0.
max_store_time Temps de stockage moyen de la requête mise en cache. Depuis 1.0.0.
valid_until Timestamp lorsque l'entrée du cache expire. Depuis 1.1.0.
metadata array

Les méta-données de l'entrée du cache. Ce sont les méta-données fournies par MySQL en plus du jeu de résultats de la requête en question. Des versions différentes du serveur MySQL peuvent retourner des méta-données différentes. Contrairement à d'autres extensions PHP MySQL, aucune tentative n'est effectuée pour cacher à l'appelant des informations quant à la version du serveur MySQL ainsi qu'à ces détails. Reportez-vous à la documentation de l'API C MySQL appartenant au serveur MySQL utilisé pour plus de détails.

La liste des méta-données contient une entrée pour chaque colonne.

Depuis 1.0.0.

Propriété Description Version
name LLe nom du champ. Suivant la version MySQL, ce peut être l'alias du nom du champ. Depuis 1.0.0.
org_name Le nom du champ. Depuis 1.0.0.
table Le nom de la table. Si un alias du nom est utilisé pour la table, ce champ contiendra le nom de l'alias. Depuis 1.0.0.
org_table Le nom de la table. Depuis 1.0.0.
db Le nom de la base de données/du shéma. Depuis 1.0.0.
max_length La taille maximale du champ. Les détails peuvent varier suivant les versions du serveur MySQL. Depuis 1.0.0.
length La taille du champ. Les détails peuvent varier suivant les versions du serveur MySQL. Depuis 1.0.0.
type Le type de données du champ. Les détails peuvent varier suivant les versions du serveur MySQL utilisé. C'est la valeur de la constante type de l'API C MySQL. Il est recommandé d'utiliser les variables type fournies par l'extension mysqli aux fins de test pour en connaitre la signification. Vous ne devriez pas tester les valeurs de certain type en les comparant avec certains nombres. Depuis 1.0.0.

Le gestionnaire de stockage APC retourne la même information pour la propriété data mais pas pour la propriété metadata. Les metadata d'une entrée du cache est défini à NULL.

Le gestionnaire de stockage MEMCACHE ne renseigne pas la propriété data. Les statistiques ne sont pas disponibles pour chaque entrée du cache avec ce gestionnaire de stockage.

Un gestionnaire de stockage défini par l'utilisateur est libre de fournir toute sorte de données.

Exemples

Exemple #1 Exemple avec mysqlnd_qc_get_cache_info()

L'exemple ci-dessous montre l'affiche depuis le gestionnaire de stockage interne par défaut. Les autres gestionnaires de stockage peuvent retourner des données différentes.

<?php
/* Peuple le cache, i.e. en utilisant mysqli */
$mysqli = new mysqli("host""user""password""schema");
$mysqli->query("/*" MYSQLND_QC_ENABLE_SWITCH "*/SELECT id FROM test");

/* Affiche les informations du cache */
var_dump(mysqlnd_qc_get_cache_info());
?>

Les exemples ci-dessus vont afficher :

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

Voir aussi


Fonctions mysqlnd_qc
PHP Manual