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