2010-10-27 4 views
0

J'ai un serveur Web avec beaucoup de sites Web avec de nombreuses opérations de base de données, et je suis la mise en cache de tryng sql comme un moyen d'améliorer les performances de mon serveur.sql désavantage de mise en cache?

En général, y a-t-il un inconvénient à propos de la mise en cache SQL dans un environnement commun?

Merci

Répondre

1

Eh bien, la mise en cache mémoire RAM consomme, de sorte que vous aurez besoin de beaucoup de cela. Je ne suis pas sûr du mécanisme de mise en cache utilisé par le serveur SQL, mais il est possible que vos requêtes renvoient des données obsolètes depuis un certain temps. Vos meilleures options d'amélioration des performances consistent à charger autant de données dans la RAM que possible au lieu de les mettre en mémoire cache.

0

Le principal problème avec la mise en cache dans un environnement normal est l'expiration du cache et les données périmées.

Si vous annulez votre cache chaque fois que les données changent, vous risquez de ne plus jamais ou rarement accéder au cache.

Si vous tentez d'invalider uniquement la partie du cache modifiée, vous disposez de temps de traitement supplémentaires pour déterminer les éléments à invalider.

Si vous n'invalidez pas le cache ou si vous avez des temporisateurs de cache, vous risquez de vous retrouver avec des données périmées. En fonction de votre environnement et de vos besoins, vous devez choisir la solution qui répond le mieux à vos besoins. Parfois, il est acceptable d'avoir des données obsolètes, et dans d'autres, ce n'est pas le cas.

0

Tous les points ci-dessus sont valides. L'invalidation des entrées de cache périmées constituerait une préoccupation majeure ainsi que la synchronisation du cache local sur plusieurs serveurs. Vous pouvez regarder dans un cache de grille (par exemple Hazelcast, mem-cache) et Heimdall Data. Heimdall agit comme un cache transparent et fournit une logique d'invalidation intégrée. En résumé, la mise en cache SQL est une bonne chose à faire. Il augmente les performances et peut bloquer le trafic sql à partir de la base de données, ce qui permet des économies d'échelle.