2009-03-16 7 views
0

Lorsque j'exécute une requête MySQL volumineuse qui insère 50k enregistrements (avec 10 petites colonnes) dans la base de données, mon utilisation du cache de requêtes atteint environ 10 Mo à 400 Mo. MySQL cache-t-il mon insertion?Le cache MySQL insère-t-il des requêtes?

Répondre

1

Comme un autre utilisateur l'a indiqué, il existe un mécanisme dans MySQL qui maintient le cache à jour. Lorsque vous effectuez un INSERT qui affecte les résultats précédemment stockés dans le cache, il doit être mis à jour pour refléter le nouvel insert, ou supprimé, pour être créé à nouveau plus tard lorsque ce SELECT est à nouveau traité. Je suppose que c'est ce que vous voyez. Une autre possibilité, bien que plus évidente, et heureusement pas votre problème, est que si vous exécutez cet INSERT avec un outil qui affiche et met à jour automatiquement la table, il peut émettre SELECTS après avoir inséré.

0

Il met probablement à jour ses caches qui sont en mémoire. Si c'est une table qui risque d'être en cache, alors MySQL pourrait essayer de se tenir au courant.

7

Le MySQL query cache documentation dit:

Le cache de requête stocke le texte d'une instruction SELECT avec le résultat qui a été envoyé au client. Si une instruction identique est reçue plus tard, le serveur récupère les résultats du cache de requêtes plutôt que d'analyser et réexécute l'instruction.

Il ne met pas en cache INSERT ou d'autres requêtes.

+0

upvote pour la documentation link.It m'a aidé !! Merci :) – KillABug

Questions connexes