Le cache MySQL fonctionne différemment selon que vous utilisez le moteur de stockage MyISAM ou le moteur de stockage InnoDB.
MyISAM met en cache uniquement 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és. Mais il n'y a pas d'instruction équivalente si vous utilisez InnoDB.
InnoDB met en cache à la fois les données et les pages d'index. Il n'y a pas de commande spécialisée pour préchauffer les tampons de cache, mais vous pouvez exécuter quelques instructions SQL qui effectuent des analyses complètes de table et des analyses complètes d'index pour les charger dans les tampons. Vous devriez pouvoir le faire en utilisant un script sur le serveur, sans avoir recours à wget
!
Je suis d'accord avec la réponse de @code_burgar : 150k lignes sont suffisamment petites pour que vous ne remarquiez pas de pénalité de performance importante pendant que le cache se réchauffe.
Si vous parlez de réchauffer le Cache de Requête, c'est une question différente. Vous devrez réchauffer le Cache de Requête en utilisant des requêtes SQL spécifiques, car ce cache conserve les ensembles de résultats associés à ces requêtes SQL textuellement. Votre solution wget
est inefficace et duplique probablement beaucoup de travail. Vous devriez pouvoir précharger le Cache de Requête en exécutant un script sur le serveur qui exécute chaque requête que vous souhaitez mettre en cache une seule 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 de cache si votre code change.