sql >> Databasteknik >  >> RDS >> Mysql

Hur man tar reda på storleken på index i mysql (inklusive primärnycklar)

Din primära nyckel är ditt bord. I en InnoDB innehåller primärnyckeln de faktiska data, så om primärnyckeln innehåller data är det tabellen.

Tänk på det ett ögonblick. Du får två olika typer av index på en InnoDB-tabell klustrade och sekundära index. Skillnaden är att ett klustrat index innehåller data och ett sekundärt index innehåller de indexerade kolumnerna och en pekare till data. Ett sekundärt index innehåller alltså inte data utan snarare platsen där data finns i CLUSTERED-indexet.

Normalt är en primärnyckel ett klustrat index. Det skulle vara mycket ineffektivt att lagra både tabellen med alla dess värden och sedan ett klustrat index med alla dess värden. Detta skulle i praktiken fördubbla bordets storlek.

Så när du har en primärnyckel som finns på en InnoDB är tabellstorleken storleken på primärnyckeln. I vissa databassystem kan du ha ett sekundärt index som primärnyckel och ett separat index som en klustrad nyckel, men InnoDB tillåter inte detta.

Läs följande länkar för mer information:

http://dev.mysql.com /doc/refman/5.0/en/innodb-table-and-index.html

http://dev.mysql.com/doc /refman/5.0/en/innodb-index-types.html

I dessa länkar förklarar de allt jag har sagt ovan mer i detalj. Enkelt uttryckt har du redan storleken på det primära nyckelindexet eftersom det är storleken på din tabell.

Hoppas det hjälper.




  1. Halloweenproblemet – del 1

  2. Avancerad partitionsmatchning för partitionsmässig koppling

  3. Skapa en fråga i SQL Server 2017

  4. Tio vanliga hot mot genomförandeplanens kvalitet