目前正在研究具有密钥声明的MySQL数据库,例如
KEY 'id' (id),
KEY 'username' (username),
KEY 'user_id' (username, id)
这是否会影响我们的数据的工作方式?消除这种情况会提高数据库的效率吗?我总结说他们是多余的,但我很好奇,如果我前面的人出于任何原因创造了这些。
答案 0 :(得分:0)
我总是消除冗余索引,我注意到写入速度的提高对查询速度没有任何影响。
我可以想到有一个冗余索引可能提高阅读速度的情况,但这种情况不太可能,并且增加的幅度很小。
总之,我热烈建议删除冗余索引:它会提高写入速度。
答案 1 :(得分:0)
在the MySQL documentation中有一个很好的解释:
MySQL允许其用户创建多个可能的索引 相同(重复索引)或部分相似(冗余索引) 它的结构。虽然重复索引没有优势,但有 在某些情况下,冗余索引可能会有所帮助。但是,两者都有 有缺点。 重复和冗余索引会降低更新速度 和插入操作。因此,找到它通常是一个好主意 并删除它们。