首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组合主键与主键。MySQL中的辅助密钥

问组合主键与主键。MySQL中的辅助密钥
EN

Stack Overflow用户
提问于 2011-11-30 06:09:26
回答 1查看 1.5K关注 0票数 4

我有一个有两个特定列的表,一个是自动递增的数字,另一个是自定义的数字。这两列将在where条件下频繁地结合在一起。现在,我有两个选择使用InnoDB引擎:

  1. 使用自动递增的数字作为主键,同时在自定义数字列上创建索引。这种选择在插入时会非常迅速,因为新记录将一个接一个地插入,这将导致聚集索引上的一些合并或拆分。但是在定制数字列上构造索引需要额外的时间和空间,
  2. i可以将自动递增的数字和自定义的数字列一起作为主键。插入时,记录不会一个接一个地放置,因此它将导致频繁的B树主索引拆分和合并。

这两种选择都将加快使用自动递增数字和自定义数字列作为筛选条件的查询速度。但是,如果我们考虑插入和空间,哪一个会更好?

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-30 06:50:06

在这种情况下,复合主键似乎更好,因为键成为覆盖索引。你为什么认为这需要分裂呢?自动递增字段必须是InnoDB中复合主键中的第一个字段,即所有新行都将追加到末尾。

而且,InnoDB中的自动递增字段在表中是唯一的,即使在复合主键中也是如此,而在MyIsam中,它为主键的每个新rest部分重新启动。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8321826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档