web-dev-qa-db-fra.com

Qu'est-ce que l'utilisation du tampon InnoDB et comment l'effacer?

Dans Mysql Workbench quand je vais dans Server > Server Status il y a un champ appelé "InnoDB Buffer Usage" Il est "95%" même si aucune requête n'est en cours d'exécution. Pourquoi? Cela affecte mes performances dans mes nouvelles requêtes? Il existe un moyen de l'effacer?

8
dax90

En supposant que votre ensemble de données est plus grand que votre pool de tampons, l'avoir à 95% d'utilisation est non seulement normal, mais un état souhaité. Vous voulez autant d'informations que possible sur la mémoire - le matériel et les ressources doivent être utilisés - afin que les prochaines lectures et écritures puissent être effectuées plus rapidement que d'avoir à accéder au disque.

Une autre chose est si cette utilisation de la mémoire est utilisée efficacement ou non: si votre taux de réussite en lecture est élevé et si vous pouvez tamponner les écritures efficacement, ce que vous pouvez vérifier en observant votre nombre d'IOPS de disque (par interrogation des statistiques InnoDB et OS) et du contenu du pool de mémoire tampon (disponible sur les tables information_schema).

Si votre serveur est inactif, ne vous inquiétez pas de l'utilisation de la mémoire (encore une fois, en supposant que votre ensemble de données est plus grand que votre pool de tampons et que votre pool de tampons est plus petit que votre mémoire physique) - le pool de tampons se remplira naturellement lorsque vous lisez et écrivez des données; et il sera utilisé plus ou moins comme une version plus complexe d'une politique LRU (les données moins utilisées seront évincées en premier). À moins que vous ne vouliez utiliser cette mémoire pour autre chose, car ce n'est pas un serveur dédié (donc, réduisez votre utilisation du pool de tampons), la plupart des gens vous envieront car le pool de tampons est entièrement utilisé est un état souhaité.

Veuillez noter que la plupart des systèmes d'exploitation mettront en cache (fichiers) de la même manière - à moins que la mémoire ne soit utilisée pour d'autres choses, ils essaieront de tenir autant de données que possible en mémoire.

Le redémarrage du serveur effacera généralement la plupart du pool de tampons sauf s'il est configuré pour être préchargé.

10
jynus