Caches multiples de clés <<< |
Stratégie d'insertion au milieu | Pré-chargement des index >>> |
7.4.6 Le cache de clé des tables MyISAM 7.4 Optimiser la structure de la base de données 7 Optimisation de MySQL Manuel de Référence MySQL 4.1 : Version Française . Accès au cache de clé partagé . Caches multiples de clés ->Stratégie d'insertion au milieu . Pré-chargement des index . Taille des blocs du cache de clé . Restructurer le cache de clé |
7.4.6.3 Stratégie d'insertion au milieu
Par défaut, le système de gestion de cache de clé de MySQL 4.1 utilise la stratégie LRU pour choisir les blocs de cache qui doivent être remplacés, mais il accepte aussi une autre méthode plus sophistiquée, appelée "stratégie de l'insertion au milieu". Lors de l'utilisation de la stratégie d'insertion au milieu, la chaîne LRU est divisée en deux parties : une sous-chaîne principale, et une sous-chaîne secondaire. Le point de division entre les deux parties n'est pas fixé, mais le système s'assure que la partie principale n'est pas ``trop petite'', et qu'elle contient au moins key_cache_division_limit % de bloc de cache de clés. key_cache_division_limit est un composant d'une variable structurée de cache de clé, et sa valeur peut être modifiée indépendamment pour chaque cache.Lorsqu'un bloc d'index est lu dans une table, depuis le cache de clé, il est placé à la fin de la sous-chaîne secondaire. Après un certain nombre d'accès, il est promu dans la sous-chaîne principale. Actuellement, le nombre d'accès requis pour passer un bloc et le même pour tous les blocs d'index. Dans le futur, nous allons permettre au compteur d'accès d'utiliser le niveau de B-tree : moins d'accès seront nécessaires à un noeud s'il contient un noeud non-terminal d'un des niveaux supérieur de l'index B-tree . Un bloc de la chaîne principale est placé à la fin de la chaîne. Le bloc circule alors dans la la sous-chaîne. Si le bloc reste à la fin de la sous-chaîne suffisamment longtemps, il est rétrogradé dans la chaîne secondaire. Ce temps est déterminé par la valeur du composant key_cache_age_threshold .La valeur de seuil prescrit que, pour un cache de clé contenant N blocs, le bloc au début de la chaîne principale qui n'est pas accédé dans les derniers N*key_cache_age_threshold/100 accès doit être placé au début de la chaîne secondaire. Il devient le premier candidat à l'éviction, car les blocs de remplacement sont toujours pris au début de la chaîne secondaire. La stratégie de l'insertion au milieu vous permet de garder les blocs les plus utilisés dans le cache. Si vous préférez utiliser la stratégie LRU classique, laissez la valeur de key_cache_division_limit à 100.La stratégie d'insertion au milieu aide à améliorer les performances lorsque l'exécution d'une requête qui requiert un scan d'index place dans le cache toutes les valeurs de l'index. Pour éviter cela, vous devez utiliser la stratégie d'insertion au milieu, avec une valeur très inférieure à 100 pour key_cache_division_limit . Les blocs les plus utilisés seront conservés dans le cache durant un tel scan. |
<< | Stratégie d'insertion au milieu | >> |
Caches multiples de clés | Le cache de clé des tables MyISAM | Pré-chargement des index |