|
Programmation -
Base de données
|
|
Ecrit par Kamal AOUDA
|
|
13-04-2006 |
|
MySQL Query Cache
Le Query cache sauvegarde le texte
d’une requête avec le résultat qui a été renvoyé au client. Si une requête
identique est appelée par la suite, MySQL retournera le résultat à partir du
cache au lieu d’exécuter la requête à nouveau. Il est important de noter que le
cache de requêtes ne retourne pas des données expirées parce qu’il est
systématiquement effacé à chaque fois que les données mises en cache sont
modifiées.
Le cache est extrêmement utile lorsque le contenu des tables change peu et
qu’il y a une série de requêtes identiques à exécuter. Les gains en
performance peuvent atteindre 238% pour effectuer des recherches sur une colonne
. Pour que MySQL aille chercher les résultats d’une requête dans le cache, il
faudrait que le texte de celle-ci soit parfaitement identique à celui d’une
requête déjà traitée. Aucune différence, aussi mineure soit elle, n’est tolérée.
Exemple : pour MySQL les deux requêtes suivantes ne sont pas identiques
lorsqu’il s’agit de chercher la réponse dans le cache.
SELECT * FROM tbl_name
Select * from tbl_name
Avec les requêtes SELECT le développeur peut préciser s’il souhaite que le
résultat soit mis en cache. Ainsi :
* Une requête comme SELECT SQL_CACHE id, name FROM customer met en cache le
résultat.
* Par contre la requête SELECT SQL_NO_CACHE id, name FROM customer ne met pas le
résultat en cache.
NB: pour activer le Query Cache il faut configurer le fichier my.cnf en
attribuant la valeur 1 à la propriété query_cache_type.
|