Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So ermitteln Sie die Größe von Indizes in MySQL (einschließlich Primärschlüssel)

Ihr Primärschlüssel ist Ihre Tabelle. In einer InnoDB enthält der Primärschlüssel die eigentlichen Daten. Wenn der Primärschlüssel also die Daten enthält, ist es die Tabelle.

Denken Sie einen Moment darüber nach. Sie erhalten zwei verschiedene Arten von Indizes für eine InnoDB-Tabelle, gruppierte und sekundäre Indizes. Der Unterschied besteht darin, dass ein gruppierter Index die Daten und ein sekundärer Index die indizierten Spalten und einen Zeiger auf die Daten enthält. Ein sekundärer Index enthält also nicht die Daten, sondern den Ort, an dem sich die Daten im CLUSTERED-Index befinden.

Normalerweise ist ein Primärschlüssel ein gruppierter Index. Es wäre höchst ineffizient, sowohl die Tabelle mit all ihren Werten als auch einen gruppierten Index mit all seinen Werten zu speichern. Dies würde die Größe der Tabelle effektiv verdoppeln.

Wenn Sie also einen Primärschlüssel haben, der sich auf einer InnoDB befindet, ist die Tabellengröße die Größe des Primärschlüssels. In einigen Datenbanksystemen können Sie einen Sekundärindex als Primärschlüssel und einen separaten Index als Clusterschlüssel haben, InnoDB erlaubt dies jedoch nicht.

Lesen Sie die folgenden Links für weitere 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 diesen Links erklären sie alles, was ich oben gesagt habe, ausführlicher. Einfach ausgedrückt, Sie haben bereits die Größe des Primärschlüsselindex, da er der Größe Ihrer Tabelle entspricht.

Hoffe das hilft.