2010-10-13 4 views
0

est-il un moyen de forcer mysql à mettre en cache une requête particulière, par exemple 5 minutes, de sorte que l'exécution de cette requête retournera toujours le même résultat même si la base de données sous-jacente change? Je cours un site de rencontres et j'ai une page qui montre "nouveaux matches" et il tape trop sur la DB.Comment forcer mysql à mettre en cache une requête pendant une période donnée?

merci d'avance.

+1

Jetez un oeil à memcached - http://memcached.org/ – chigley

Répondre

1

La mise en cache dans MySQL n'est pas une bonne solution à ce problème.

MySQL met automatiquement en cache une requête jusqu'à ce que la table soit mise à jour.

Pour votre problème, vous devez utiliser un cache devant la base de données. Vous pouvez d'abord vérifier le cache, et si ce que vous recherchez n'est pas dans le cache, cliquez sur la base de données et ajoutez-la au cache.

Memcached est une bonne solution pour cela, surtout si vous avez plus d'un serveur Web.

APC est une autre bonne solution qui peut également mettre en cache votre bytecode PHP, mais c'est un cache local sur une seule machine.

+0

merci memcached ressemble à ce dont j'ai besoin. J'espérais éviter d'ajouter plus de couches, mais il est logique que je devrais le faire. –

Questions connexes