Question

Existe-t-il un moyen simple de mettre en cache MySQL queries dans PHP ou à défaut, existe-t-il un petit ensemble de classes que quelqu'un a écrit et mis à disposition et qui le fera ?Je peux mettre en cache une page entière mais cela ne fonctionnera pas car certaines données changent mais d'autres non, je veux mettre en cache la partie qui ne fonctionne pas.

Était-ce utile?

La solution

Voici un excellent aperçu de la façon de mettre en cache les requêtes dans MySQL :

Autres conseils

Vous pouvez utiliser Zend Cache pour mettre en cache les résultats de vos requêtes entre autres.

Je pense que la taille du cache des requêtes est de 0 par défaut, ce qui est désactivé.Modifiez votre fichier my.cnf pour lui donner au moins quelques mégaoctets.Aucune modification PHP nécessaire :)

Cela peut être complètement exagéré pour ce que vous essayez, mais jetez un œil à eAccelerator ou cache mémoire.Si vous avez des requêtes qui changeront régulièrement et des requêtes qui ne le feront pas, vous ne souhaiterez peut-être pas que toutes vos requêtes de base de données soient mises en cache pendant la même durée par MySQL.

Les moteurs de mise en cache comme celui ci-dessus vous permettent de décider, requête par requête, combien de temps les données doivent être mises en cache.Supposons donc que vous ayez des données dans votre en-tête qui changeront rarement, vous pouvez vérifier si elles sont actuellement dans le cache - si c'est le cas, renvoyez-les, sinon effectuez la requête et mettez-les dans le cache avec une durée de vie de N, donc pour le prochain N secondes à chaque chargement de page extraira les données du cache sans s'approcher de MySQL.Vous êtes alors libre d'extraire vos autres données "en direct" de la base de données selon vos besoins, en contournant le cache.

Je recommanderais la route de mise en cache de la page entière.Si certaines données changent, placez simplement des jetons/espaces réservés à la place des données dynamiques.Mettez en cache la page entière avec ces jetons en place, puis post-traitez les jetons pour les données mises en cache pour les jetons.Ainsi, vous disposez désormais d’une page en cache contenant du contenu dynamique.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top