Maison >base de données >tutoriel mysql >Pourquoi les fonctions d'agrégation fenêtrées avec des spools de sous-expressions communs entraînent-elles des lectures logiques aussi élevées ?
Pourquoi les lectures logiques sont-elles si élevées pour les fonctions d'agrégation fenêtrées avec des bobines de sous-expression communes ?
Vous avez remarqué cela dans les plans d'exécution avec une sous-expression commune spools, les lectures logiques signalées pour les grandes tables sont nettement supérieures aux attentes. L'enquête révèle une formule qui semble être vraie : Lectures logiques de la table de travail = 1 NumberOfRows 2 NumberOfGroups 4.
Comprendre la formule
La logique élevée les lectures découlent de la manière unique dont les tables de travail gèrent les lectures. Les lectures logiques dans ce contexte font référence au nombre de lignes lues et non de pages hachées. Cela signifie que pour chaque ligne traitée, la table de travail enregistre une lecture logique.
Répartition des lectures logiques
Tentative de réplication avec Lectures logiques inférieures
Votre tentative de répliquer le processus avec une table de tas affiche seulement 11 lectures logiques car :
Conclusion
La formule que vous found est vrai car il reflète avec précision le nombre de lignes lues par la table de travail. Les lectures logiques plus élevées sont dues à la méthode de comptage basée sur les lignes et non à l'inefficacité. Le plan de boucles imbriquées utilisé dans votre requête d'origine amplifie encore ce nombre.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!