sql >> Database >  >> RDS >> Mysql

Hoe de grootte van indexen in mysql te achterhalen (inclusief primaire sleutels)

Uw primaire sleutel is uw tabel. In een InnoDB bevat de primaire sleutel de feitelijke gegevens, dus als de primaire sleutel de gegevens bevat, is dit de tabel.

Denk er even over na. U krijgt twee verschillende soorten indexen op een InnoDB-tabel geclusterde en secundaire indexen. Het verschil is dat een geclusterde index de gegevens bevat en een secundaire index de geïndexeerde kolommen en een verwijzing naar de gegevens. Een secundaire index bevat dus niet de gegevens, maar de locatie waar de gegevens zich in de CLUSTERED-index bevinden.

Normaal gesproken is een primaire sleutel een geclusterde index. Het zou zeer inefficiënt zijn om zowel de tabel met al zijn waarden op te slaan als een geclusterde index met al zijn waarden. Dit zou in feite de grootte van de tafel verdubbelen.

Dus als u een primaire sleutel op een InnoDB heeft, is de tabelgrootte de grootte van de primaire sleutel. In sommige databasesystemen kunt u een secundaire index als primaire sleutel hebben en een aparte index als geclusterde sleutel, maar InnoDB staat dit niet toe.

Lees de volgende links voor meer details:

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

In deze links leggen ze alles wat ik hierboven heb gezegd in meer detail uit. Simpel gezegd, je hebt al de grootte van de primaire sleutelindex omdat het de grootte van je tabel is.

Ik hoop dat dat helpt.




  1. Getallen opmaken met komma's in SQL Server

  2. Stel de tekenset en sortering van een kolom in MariaDB in

  3. 5 manieren om de fout "Delen door nul" in SQL Server op te lossen (Msg 8134)

  4. Hoe de Security Advisor MySQL-waarschuwing te repareren