Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment construire manuellement le cache mysql

Le cache MySQL fonctionne différemment selon que vous utilisez le moteur de stockage MyISAM ou le moteur de stockage InnoDB.

MyISAM met uniquement en cache les index, pas les données. Vous pouvez utiliser LOAD INDEX INTO CACHE pour précharger les index MyISAM dans le cache du tampon de clé. Mais il n'y a pas d'instruction équivalente si vous utilisez InnoDB.

InnoDB met en cache les données et les pages d'index. Il n'y a pas de commande spécialisée pour réchauffer les tampons de cache, mais vous pouvez exécuter quelques instructions SQL qui effectuent des analyses complètes de table et d'index pour les charger dans les tampons. Vous devriez pouvoir le faire en utilisant un script sur le serveur, sans recourir à wget !

Je suis d'accord avec la réponse de @code_burgar :150 000 lignes sont suffisamment petites pour que vous ne remarquiez pas beaucoup de perte de performances pendant le préchauffage du cache.

Si vous parlez de réchauffer le Query Cache , c'est un autre problème. Vous devrez préparer le cache de requêtes à l'aide de requêtes SQL spécifiques, car ce cache conserve textuellement les ensembles de résultats associés à ces requêtes SQL. Votre wget solution est inefficace et duplique probablement beaucoup de travail. Vous devriez pouvoir amorcer le cache de requêtes en exécutant un script sur le serveur qui exécute chaque requête que vous souhaitez mettre en cache une fois .

Mais vous devrez peut-être effectuer une révision du code pour déterminer quelles sont ces requêtes et mettre à jour périodiquement votre script de préchargement du cache si votre code change.