Le cache MySQL fonctionne différemment selon que vous utilisez le moteur de stockage MyISAM ou le moteur de stockage InnoDB. MyISAM ne met en cache que 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 de déclaration équivalente si vous utilisez InnoDB.
InnoDB met en cache les pages de données et 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 de table complètes et des index-scans complets pour les charger dans les tampons. Vous devriez être capable de 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 assez petites pour que vous ne deviez pas remarquer beaucoup de pénalités de performance pendant que le cache se réchauffe.
Si vous parlez de réchauffer le Query Cache, c'est un problème différent. Vous devrez réchauffer 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 solution wget
est inefficace et duplique probablement beaucoup de travail. Vous devriez être en mesure d'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 de 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.
Merci beaucoup c'est MyISAM donc je vais essayer la commande LOAD INDEX IN CACHE dans la matinée et voir si ça fait l'affaire. Pour le cache de requête serait-il aussi simple que de sélectionner tout de chaque table? – hamstar
Le cache de requêtes met en cache les ensembles de résultats pour des requêtes spécifiques. Il ne serait donc pas utile de tout sélectionner dans chaque tableau (sauf si ce sont les requêtes que vous utilisez dans votre application, ce dont je doute). –
Ça l'a fait, c'est rapide comme maintenant :) MERCI! – hamstar