Mysql
 sql >> Base de données >  >> RDS >> Mysql

comment fonctionne l'indexation B-tree dans mysql

La base de données stocke la valeur indexée sous la forme d'un B-Tree clé, et le pointeur d'enregistrement sous la forme d'un B-Tree valeur.

Chaque fois que vous recherchez un enregistrement contenant une certaine valeur d'une colonne indexée, le moteur localise la clé contenant cette valeur dans le B-Tree , récupère le pointeur vers l'enregistrement et récupère l'enregistrement.

Qu'est-ce qu'un "pointeur d'enregistrement", dépend du moteur de stockage.

  • Dans MyISAM , le pointeur d'enregistrement est un décalage vers l'enregistrement dans le MYI fichier.

  • Dans InnoDB , le pointeur d'enregistrement est la valeur de la PRIMARY KEY .

Dans InnoDB , la table elle-même est un B-Tree avec une PRIMARY KEY en tant que B-Tree clé. C'est ce qu'on appelle un "index clusterisé" ou une "table organisée en index". Dans ce cas, tous les autres champs sont stockés sous la forme d'un B-Tree valeur.

Dans MyISAM , les enregistrements sont stockés sans ordre particulier. C'est ce qu'on appelle le "stockage de tas".