我可以在没有PK的情况下创建InnoDB表吗?如果是这样,二级索引是否会用作聚簇索引?

时间:2011-03-31 02:01:17

标签: mysql primary-key innodb clustered-index database-indexes

是否可以创建没有主键的InnoDB表?

由于InnoDB表的结构是围绕PK的聚簇索引,没有PK的表的结构是什么?该表仍然是聚集索引,但是围绕辅助密钥吗?

感谢。

1 个答案:

答案 0 :(得分:2)

http://www.sqlinfo.net/mysqldocs/v50/storage-engines.html#innodb-table-and-index

13年2月14日。 InnoDB表和索引结构

  

如果没有为表定义PRIMARY KEY,MySQL会选择第一个只有NOT NULL列作为主键的UNIQUE索引,而InnoDB将它用作聚簇索引。 如果表中没有这样的索引,InnoDB会在内部生成一个聚簇索引,其中行按行ID 排序,InnoDB将这些行分配给此类表中的行。行ID是一个6字节的字段,随着新行的插入而单调增加。因此,由行ID排序的行在物理上处于插入顺序。