sql >> Database >  >> RDS >> Mysql

primaire indexen versus secundaire indexen:prestatieverschillen

Een geclusterde tabel is een B-Tree zonder "heap"-gedeelte - rijen worden direct opgeslagen in de B-Tree-structuur van de clusteringindex (primaire sleutel). Knooppunten van de B-Tree kunnen worden gesplitst of samengevoegd, zodat de fysieke locatie of rijen kunnen veranderen, dus we kunnen geen eenvoudige "aanwijzer" hebben van een secundaire index naar de rijen, dus de secundaire index moet een volledige kopie bevatten van de primaire indexvelden om rijen betrouwbaar te kunnen identificeren.

Dit geldt voor Oracle, MS SQL Server en is ook waar voor InnoDB .

Dat betekent dat secundaire indexen in geclusterde tabellen "vetter" zijn dan secundaire indexen in op heap gebaseerde tabellen, die:

Ik citeer Gebruik de index, Luke! :"De voordelen van index-georganiseerde tabellen en geclusterde indexen zijn meestal beperkt tot tabellen die geen tweede index nodig hebben."

Dat is jammer, aangezien MySQL je de clustering niet onafhankelijk van de storage-engine laat kiezen.




  1. verbinding maken met de lokale MySQL-server via socket

  2. hoe een hash-waarde in de tabelkolom in rails te behouden

  3. Waarde berekenen met behulp van de vorige waarde van een rij in T-SQL

  4. MySQL-databaseverbinding met Visual Studio 2013 Preview