(PECL mysqlnd_qc >= 1.0.0)
mysqlnd_qc_get_cache_info — Retourne des informations sur le gestionnaire courant
Cette fonction ne contient aucun paramètre.
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 hachage.
Ce hachage 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.
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) } } } } }