添加PK时隐藏的MySQL [InnoDB] PK会发生什么变化?
What happens to the hidden MySQL [InnoDB] PK when you add a PK?
在 MySQL 中使用 InnoDB 存储引擎时,如果在创建 table 时未指定主键,则隐藏的唯一索引将用作聚集索引。由于数据字典上的互斥锁,我读到这些隐藏索引可能导致争用。
我的问题是 - 如果我将 PRIMARY KEY 添加到 table,隐藏的 PK 会怎样?
如果将 PRIMARY KEY
添加到 table,InnoDB 将其用作聚簇索引。
如果 InnoDB 在非可空列上使用 UNIQUE INDEX 作为集群索引,UNIQUE INDEX 将仍然存在,但它将成为二级索引(当您添加 PRIMARY KEY 时。)
如果 InnoDB 在合成行 ID 列上使用隐藏索引作为聚类索引,那么该隐藏索引将被删除(当您添加 PRIMARY KEY 时)。
在 MySQL 中使用 InnoDB 存储引擎时,如果在创建 table 时未指定主键,则隐藏的唯一索引将用作聚集索引。由于数据字典上的互斥锁,我读到这些隐藏索引可能导致争用。
我的问题是 - 如果我将 PRIMARY KEY 添加到 table,隐藏的 PK 会怎样?
如果将 PRIMARY KEY
添加到 table,InnoDB 将其用作聚簇索引。
如果 InnoDB 在非可空列上使用 UNIQUE INDEX 作为集群索引,UNIQUE INDEX 将仍然存在,但它将成为二级索引(当您添加 PRIMARY KEY 时。)
如果 InnoDB 在合成行 ID 列上使用隐藏索引作为聚类索引,那么该隐藏索引将被删除(当您添加 PRIMARY KEY 时)。