web-dev-qa-db-fra.com

query_cache_type = 0 vs query_cache_type = 1

Récemment, je suis passé de MySQL standard à Percona, et j'ai utilisé Percona Wizard pour générer my.cnf.

Cependant, je peux voir que, par défaut, les paramètres générés pour my.cnf utilisation query_cache_type = 0. (le cache de requête est désactivé).

La seule chose que je lance sur le serveur est un blog Wordpress. Mes questions sont:

  1. Puis-je activer le cache de requêtes?
  2. Certains plugins Wordpress proposent un cache de base de données. Le résultat est-il similaire à l'activation du cache de requête?
7
bazaglia

Pour un blog Wordpress, il devrait être correct de définir query_cache_type = 1. Voir, les principaux problèmes avec le cache de requêtes sont:

  1. Il invalide très facilement (toute mise à jour sur une table invalide toutes les requêtes liées à ladite table)

  2. Il a un seul mutex sur lequel toute requête entrante ou sortante doit passer.

Le cache de requêtes était bien à l'époque où les machines avaient un cœur, peut-être deux; il ne se comporte pas bien avec plusieurs cœurs et une concurrence élevée, et il ne se comporte pas bien avec des applications intensives en écriture.

Votre blog Wordpress est peu susceptible d'écrire intensivement: vos écrits sont de nouveaux articles, mises à jour, commentaires ... Combien d'entre eux? Vous ne pouvez même pas les contrer à la minute. ..

Ce ne serait pas non plus une lecture intensive. Des centaines de lectures par jour Des milliers? Ce n'est rien.

En ce qui concerne les plugins, cela dépend grandement du plugin et de votre déploiement. Wordpress est écrit en PHP, et PHP peut utiliser des mécanismes de cache tels que le système de fichiers, memcached ou APC. Il devrait être en général une "meilleure" mise en cache pour le il est orienté. Autrement dit, il invalidera les données mises en cache sur la base de modifications réelles apportées aux données pertinentes - et non pour des opérations non pertinentes sur une table. Les programmeurs du plug-in devront décider quels éléments de données sont importants à mettre en cache, lesquels sont non, comment fonctionne l'invalidation.

Encore une fois, à l'échelle d'un blog, ce n'est pas grave et cela ne devrait pas faire de différence significative (bien sûr, il pourrait toujours y avoir un plugin fou).

En bout de ligne: pour vos besoins, tout se passe et peu importe.

5
Shlomi Noach

Cela dépend de votre type de base de données. Si vous utilisez InnoDB, le cache de requête n'est pas requis. De plus, le cache de requêtes nuit à la vitesse des performances globales. Par conséquent, si vous utilisez MyISAM pour wordpress, vous devez l'utiliser.

0
junseok bae