Mysql How do you create a clustered index?

后端 未结 4 623
温柔的废话
温柔的废话 2020-12-05 19:58

I\'m reading all about how clustered indexes work, and think they would be beneficial to my app. I understand that primary keys are automatically clustered indexes, but how

4条回答
  •  借酒劲吻你
    2020-12-05 20:41

    According to Clustered and Secondary Indexes, you can have only one clustered index per table.

    All indexes other than the clustered index are known as secondary indexes.

    If a table has no primary index but another unique index, this is used as the clustered index.

    If you do not define a PRIMARY KEY for your table, MySQL locates the first UNIQUE index where all the key columns are NOT NULL and InnoDB uses it as the clustered index.

    So, I would conclude, that you don't add a clustered index yourself, but MySQL chooses either the primary or the first unique index of a table as the clustered index.


    If you haven't defined a primary or unique index, MySQL creates an index itself

    If the table has no PRIMARY KEY or suitable UNIQUE index, InnoDB internally generates a hidden clustered index named GEN_CLUST_INDEX on a synthetic column containing row ID values. The rows are ordered by the ID that InnoDB assigns to the rows in such a table. The row ID is a 6-byte field that increases monotonically as new rows are inserted. Thus, the rows ordered by the row ID are physically in insertion order.

提交回复
热议问题