"La clé de l'Efficacité" est une indication de la façon dont beaucoup de valeur que vous obtenez à partir de l'indice des caches lieu dans MySQL mémoire. Si votre clé de rendement est élevé, alors le plus souvent MySQL est des recherches à partir de l'intérieur de l'espace mémoire, ce qui est beaucoup plus rapide que d'avoir à récupérer l'indice pertinent pâtés de maisons de disque.
La façon d'améliorer les clefs de l'efficacité est de consacrer plus de votre mémoire système MySQL index des caches. Comment vous faites cela dépend du moteur de stockage que vous utilisez. Pour MyISAM, augmenter la valeur de la clé-taille de buffer. Pour InnoDB, augmenter la valeur de innodb-tampon-pool-size.
Cependant, comme Michael Eakins points, le système d'exploitation détient également des caches de blocs de disque qui il a consulté récemment. Plus la quantité de mémoire de votre système d'exploitation est disponible, plus les blocs de disque, il peut mettre en cache. En outre, les lecteurs de disques eux-mêmes (et les contrôleurs de disque dans certains cas), ont aussi des caches - ce qui peut accélérer la récupération de données à partir du disque. La hiérarchie est un peu comme ceci:
- plus rapide de la récupération des données de l'indice de l'intérieur de MySQL index cache. Le coût est un peu de la mémoire des opérations.
- la récupération des données de l'indice qui est tenu dans l'OS cache du système de fichiers. Le coût est un appel système (pour la lecture), et certaines opérations de mémoire.
- la récupération des données de l'indice détenu dans le disque système de cache (contrôleur et les disques). Le coût est un appel système (pour la lecture), la communication avec le périphérique de disque, et certaines opérations de mémoire.
- lente récupération de données de l'index à partir de la surface du disque. Le coût est un appel système, la communication avec l'appareil, le mouvement physique du disque (mouvement de bras + rotation).
Dans la pratique, la différence entre le 1 et le 2 est presque imperceptible, sauf si votre système est très occupé. Aussi, il est peu probable (sauf si votre système a un peu moins de RAM que votre contrôleur de disque) que le scénario 3 entreront en jeu.
J'ai utilisé des serveurs avec les tables MyISAM avec relativement faible de l'indice de caches (512 MO), mais massive de la mémoire système (64 GO) et ont trouvé qu'il est difficile de démontrer la valeur de l'augmentation de la taille de l'index de cache. Je suppose que cela dépend de ce qui se passe sur votre serveur. Si tout ce que vous êtes en cours d'exécution est une base de données MySQL, il est très probable que le cache du système d'exploitation est très efficace. Toutefois, si vous exécutez d'autres travaux sur le même serveur et que ces utiliser beaucoup de mémoire / accès disque, puis ceux-ci pourraient expulser précieux index mis en cache des blocs conduisant à MySQL de frapper le disque le plus souvent.
Un exercice intéressant (si vous avez le temps) est à bricoler avec votre système afin de le rendre plus lent. L'exécution d'un standard de la charge de travail sur de grandes tables, de réduire le MySQL tampons jusqu'à ce que l'impact est notable. Vider votre cache du système de fichiers par le pompage des quantités énormes (plus de RAM) de données non pertinentes par le biais de votre système de fichiers ( le chat de la grand-fichier > /dev/null ). Regarder iostat que vos requêtes exécutées.
"La clé de l'Efficacité" n'est PAS une mesure de la qualité de vos clés. Bien conçu, les touches ont un impact beaucoup plus important sur la performance de haut "les Clés de l'Efficacité". MySQL n'a pas beaucoup pour vous y aider, malheureusement.