[+/-]
Depuis la version 4.0.1, le MySQL server
bénéficie d'un cache de requêtes
. En fait,
le cache sauvegrade le texte d'une requête
SELECT
avec le résultat qui a été envoyé au
client. Si une requête identique est appelée par la suite, le
serveur retournera le résultat à partir du cache plutôt que
d'analyser puis exécuter la requête à nouveau.
Le cache de requêtes est extrêmement utile dans un environnement où les tables ne changent pas souvent, et que vous avez de nombreuses requêtes identiques. C'est la situation classique des serveurs Web, qui génèrent beaucoup de pages dynamiques à partir du même contenu.
Note: The query cache does not return stale data. When tables are modified, any relevant entries in the query cache are flushed.
Note : Le cache de requêtes ne retourne pas de données périmées. A chaques fois que les données sont modifiées, les entrées correspondantes dans le cache sont effacées.
Voici quelques performances du cache de requêtes. (Ces résultats on été générés en utilisant la suite benchmark MySQL sur un Linux Alpha 2 x 500 MHz avec 2GB RAM et un cache de requêtes de 64MB) :
Si toutes les requêtes que vous effectuez sont simples (comme séléctionner un champ d'une table n'en contenant qu'un) mais diffèrent d'une manière que toutes les requêtes ne peuvent être cachées, le gain lors de l'utilisation du cache est de 13%. Cela peut être considéré comme le pire des cas. En réalité, les requêtes sont plus compliquées que notre exemple le gain est donc plus petit.
Les recherches sur une colonne dans une table n'en contenant qu'une sont 238% plus rapides. Cela peut être considéré comme le gain minimal à attendre pour une requête cachée.
Si vous ne voulez pas utiliser le cache de requêtes paramétrez
query_cache_size
à zéro. En désactivant le
cache de requête, il n'y a aucune surcharge apparente. (le cache
de requêtes peut être désactivé à l'aide de l'option de
configuration --without-query-cache
)
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.