Mysql
 sql >> Database >  >> RDS >> Mysql

come funziona l'indicizzazione B-tree in MySQL

Il database memorizza il valore indicizzato come B-Tree chiave e il puntatore del record come B-Tree valore.

Ogni volta che cerchi un record che contiene un certo valore di una colonna indicizzata, il motore individua la chiave che contiene questo valore nel B-Tree , recupera il puntatore al record e recupera il record.

Che cos'è esattamente un "puntatore di record" dipende dal motore di archiviazione.

  • In MyISAM , il puntatore del record è un offset del record nel MYI file.

  • In InnoDB , il puntatore del record è il valore della PRIMARY KEY .

In InnoDB , la tabella stessa è un B-Tree con una PRIMARY KEY come B-Tree chiave. Questo è ciò che viene chiamato "indice cluster" o "tabella organizzata per indice". In questo caso, tutti gli altri campi vengono memorizzati come B-Tree valore.

In MyISAM , i record vengono archiviati senza alcun ordine speciale. Questo è chiamato "archiviazione dell'heap".