sql >> Database >  >> RDS >> Mysql

hoe B-tree indexering werkt in mysql

De database slaat de waarde op die is geïndexeerd als een B-Tree sleutel, en de recordaanwijzer als een B-Tree waarde.

Telkens wanneer u zoekt naar een record met een bepaalde waarde van een geïndexeerde kolom, lokaliseert de engine de sleutel met deze waarde in de B-Tree , haalt de aanwijzer naar het record op en haalt het record op.

Wat precies een "recordpointer" is, hangt af van de opslagengine.

  • In MyISAM , de recordpointer is een offset naar het record in de MYI bestand.

  • In InnoDB , de recordpointer is de waarde van de PRIMARY KEY .

In InnoDB , de tabel zelf is een B-Tree met een PRIMARY KEY als een B-Tree sleutel. Dit is wat een "geclusterde index" of "index-georganiseerde tabel" wordt genoemd. In dit geval worden alle andere velden opgeslagen als een B-Tree waarde.

In MyISAM , worden de records zonder speciale bestelling opgeslagen. Dit wordt "heap-opslag" genoemd.



  1. Hoe migratie (schema en gegevens) voor PHP/MySQL-toepassing te automatiseren

  2. Waarom en wanneer is een LEFT JOIN met voorwaarde in de WHERE-clausule niet gelijk aan dezelfde LEFT JOIN in ON?

  3. Lijst van alle nullable-kolommen in een SQL Server-database

  4. MySQL:beperking toevoegen als deze niet bestaat