Options relatives au cache de requêtes dans un SELECT
<<<
Configuration du cache de requêtes Status du cache de requêtes et maintenance
>>>

5.10 Cache de requêtes MySQL
5 Administration du serveur
 Manuel de Référence MySQL 4.1 : Version Française

Comment fonctionne le cache de requêtes
Options relatives au cache de requêtes dans un SELECT
->Configuration du cache de requêtes
Status du cache de requêtes et maintenance

5.10.3 Configuration du cache de requêtes

Le cache de requête ajoute quelques variables système MySQL liées à mysqld qui peuvent être spécifiées dans un fichier de configuration, en ligne de commande lors du démarrage de mysqld .

  • query_cache_limit Ne pas cacher les résultats dont la taille est supérieure à cette valeur. (1 Mo par défaut).à
  • query_cache_min_res_unit Cette variable a été ajoutée en version 4.1.Le résultat de la requête (les données qui sont aussi envoyées au client) sont stockés dans le cache de résultat durant la lecture. Par conséquent, les données ne sont généralement pas gérées en un seul bloc. Le cache de requête alloue des blocs pour stocker les données, à la demande, et lorsqu'un bloc est plein, un nouveau bloc est alloué. Comme cette gestion de la mémoire est coûteuse en termes de temps, le cache de requête alloue des blocs avec une taille minmale de query_cache_min_res_unit . Lorsque la requête est exécutée, le dernier bloc de résultat est réduit à la taille de ses données, pour que la mémoire inutilisée soit libérée.
    • La valeur par défaut de query_cache_min_res_unit est de 4 kom, ce qui doit être valalble pour la plupart des situations.
    • Si vous avez beaucoup de requêtes avec de petits résultats, la taille par défaut du bloc peut conduire à de la fragmentation de mémoire (indiquée par un grand nombre de blocs libres, dans la variable Qcache_free_blocks . Cela fait que le gestionnaire de cache doit faire du ménage à cause d'un manque de mémoire ( Qcache_lowmem_prunes )). Dans ce cas, il faut réduire la taille de query_cache_min_res_unit .
    • Si vous avez des requêtes avec de grands résultats, (voir Qcache_total_blocks et Qcache_queries_in_cache ), vous pouvez gagner en performance en accroissant query_cache_min_res_unit . Cependant, soyez prudent de ne pas utiliser une valeur trop grande (voir le point précédent.
  • query_cache_size La mémoire allouée pour la mise en cache des requêtes. Si ce paramètre est à 0, le cache de requêtes est désactivé (valeur par défaut).
  • query_cache_type Peut être (valeurs numériques seulement) :
    Option Description
    0 (OFF, ne pas utiliser le cache)
    1 (ON, mettre en cache tous les résultats à part les requêtes SELECT SQL_NO_CACHE ... )
    2 (DEMAND, mettre en cache seulement les résultats des requêtes SELECT SQL_CACHE ... )
La configuration du cache de requête peut être changée durant la connexion. La syntaxe est la suivante :

QUERY_CACHE_TYPE = OFF | ON | DEMAND QUERY_CACHE_TYPE = 0 | 1 | 2

Option Description
0 ou OFF Ne pas utiliser le cache.
1 ou ON mettre en cache tous les résultats à part les requêtes SELECT SQL_NO_CACHE ... .
2 ou DEMAND mettre en cache seulement les résultat des requêtes SELECT SQL_CACHE ... .

<< Configuration du cache de requêtes >>
Options relatives au cache de requêtes dans un SELECT Cache de requêtes MySQL Status du cache de requêtes et maintenance