MySQL中的冗余密钥

时间:2017-06-06 19:20:17

标签: mysql database key

目前正在研究具有密钥声明的MySQL数据库,例如

KEY 'id' (id),
KEY 'username' (username),
KEY 'user_id' (username, id)

这是否会影响我们的数据的工作方式?消除这种情况会提高数据库的效率吗?我总结说他们是多余的,但我很好奇,如果我前面的人出于任何原因创造了这些。

2 个答案:

答案 0 :(得分:0)

我总是消除冗余索引,我注意到写入速度的提高对查询速度没有任何影响。

我可以想到有一个冗余索引可能提高阅读速度的情况,但这种情况不太可能,并且增加的幅度很小。

总之,我热烈建议删除冗余索引:它会提高写入速度。

答案 1 :(得分:0)

the MySQL documentation中有一个很好的解释:

  

MySQL允许其用户创建多个可能的索引   相同(重复索引)或部分相似(冗余索引)   它的结构。虽然重复索引没有优势,但有   在某些情况下,冗余索引可能会有所帮助。但是,两者都有   有缺点。 重复和冗余索引会降低更新速度   和插入操作。因此,找到它通常是一个好主意   并删除它们。