sagat06
Messages postés166Date d'inscriptionmercredi 27 juin 2007StatutMembreDernière intervention31 mars 2014
-
7 févr. 2011 à 14:20
sagat06
Messages postés166Date d'inscriptionmercredi 27 juin 2007StatutMembreDernière intervention31 mars 2014
-
7 févr. 2011 à 15:03
Bonjour à tous,
je m'intéresse depuis peu au cache de requête mysql.
Je travail en local sous XP avec wampserver 2.0 (Mysql5.0.51b)
Je viens de m'apercevoir que le cache mysql était activé par défaut (query_cache_type ON) et cela amène quelques questions.
D'après la documentation Mysql:
"Le cache de requêtes ne retourne pas de données périmées. A chaque fois que les données sont modifiées, les entrées correspondantes dans le cache sont effacées."
"Si une table change (INSERT, UPDATE, DELETE, TRUNCATE, ALTER ou DROP TABLE|DATABASE), alors toutes les requêtes mises en cache qui utilisaient cette table deviennent obsolètes et en sont retirées."
Or, les tables membres, amis ou messages par exemple -dépendant de l'activité des utilisateurs du site- peuvent varier assez souvent. A partir de là, certaines des requêtes de mon site sont donc stockées pour rien.
Et je me demande même si les mettre en cache n'en devient pas contre productif (cycle mise en cache - modification de la table - retiré du cache ) ?
Sinon dois-je les laisser se mettre en cache quand même car le gain d'exécution est significatif (en local c'est du 3-4 fois plus rapide) ?
Bref, mon principal soucis est de savoir s'il vaut mieux que je sélectionne les requêtes devant être mise en cache (celle relative à des tables que je suis le seul à modifier environ 1 à 2 fois par jour souvent le soir) ou bien si je laisse tel quel le système par défaut CAR VOUS M'AFFIRMEZ ( ) que ça ne pénalise pas le système de mise en cache.
syndrael
Messages postés2378Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention29 décembre 201220 7 févr. 2011 à 14:46
Moi j'affirme rien du tout.. je dis juste qu'on ne connait pas ton application, et qu'il faudrait faire du benchmark..rien de tel que l'approche pragmatique..
Et puis travail en local sous XP, est-ce que ton appli nécessite de pousser autant la réflexion ??
1er réflexe pour avoir une application rapide, développer proprement.
S.
sagat06
Messages postés166Date d'inscriptionmercredi 27 juin 2007StatutMembreDernière intervention31 mars 20141 7 févr. 2011 à 15:03
Salut,
fallait noter le smiley entre parenthèse...
Sinon, je pousse la réflexion pour une prochaine mise en ligne d'un projet.
Je préfère me renseigner en amont plutôt qu'avoir à tout gérer sous la pression.
Sinon, bref résumé du projet:
Site à accès membre, 1/4 de page statique, la majorité des requêtes SELECT porte sur des tables dont je suis le seul à modifier le contenu environ 1 fois/ jour, souvent le soir. Dans ce cas, le cache mysql est une évidence.
Puis, j'ai 2 pages principales avec des SELECT sur des tables modifiées selon l'activité des membres (envoi de message, ajout d'ami, lecture de message...). Plus il y aura de membres actifs, plus ces tables seront modifiées par des INSERT et autre UPDATE assez souvent.
C'est pourquoi je me demandais si mettre ses requêtes là dans le cache allait apporter un bénéfice, au contraire être contre productif ("les requêtes mises en cache qui utilisaient cette table deviennent obsolètes et en sont retirées") ou n'allait pas avoir d'impact significatif ni en bien ni en mal.
Pour info, je compte mettre en session les résultat des requêtes sur les 2 pages principales mais je voulais juste avoir un avis admis par le plus grand nombre sur ce problème.
NB: je sais très bien que je n'aurai probablement pas besoin de cela au début du site mais je vois à moyen terme en cas de succès