在MySQL中使用InnoDB存储引擎时,如果在创建表时未指定PRIMARY KEY,则使用隐藏的唯一索引作为聚簇索引。由于数据字典上的互斥锁,我已经读过这些隐藏的索引可能导致争用。
我的问题是 - 如果我在表格中添加PRIMARY KEY,隐藏的PK会发生什么?
答案 0 :(得分:1)
如果向表中添加PRIMARY KEY
,InnoDB会将其用作集群索引。
如果InnoDB在非NULLable列上使用UNIQUE INDEX作为集群索引,则UNIQUE INDEX仍然存在,但它将成为二级索引(当您添加PRIMARY KEY时。)
如果InnoDB在合成行id列上使用隐藏索引作为集群索引,那么将删除该隐藏索引(当您添加PRIMARY KEY时)。