首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我们有主键,我们可以删除id上的唯一键索引吗?

问如果我们有主键,我们可以删除id上的唯一键索引吗?
EN

Stack Overflow用户
提问于 2015-01-22 11:33:21
回答 1查看 27关注 0票数 0

我们正在优化我们公司的MySQL数据库。在许多表格中,我们发现:

  • id上的主键
  • id上唯一的键
  • id上的“键”

因为主键已经是唯一的,所以我知道唯一的键是多余的,不需要。我也明白,在这个意义上,键只意味着“索引”,因此它也是多余的。

​

​

  1. 我们真的可以删除、取唯一和键,并且具有主键索引所提供的相同速度吗?
  2. 这三个索引是否会导致SELECT查询速度变慢?
EN

回答 1

Stack Overflow用户

发布于 2015-01-22 14:22:50

是的,您可以删除唯一索引和键声明。AFAIK,每个SQL dbms都使用唯一的索引实现主键约束。您可以通过运行explain、删除这两个文件并再次运行explain来验证。

冗余索引可能对选择性能影响不大,因为冗余索引为查询规划器提供了更多可供考虑的选项。但是我希望冗余索引对INSERT和DELETE语句有更大的影响,因为这些索引必须与表一起更新。(SQL UPDATE语句只需要在更新的列被索引时才要求对索引进行更改。)

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

https://stackoverflow.com/questions/28087756

复制
相关文章

相似问题

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