MySQL中的冗余密钥

MySQL中的冗余密钥,mysql,database,key,Mysql,Database,Key,目前正在处理一个MySQL数据库,该数据库具有如下关键声明 KEY 'id' (id), KEY 'username' (username), KEY 'user_id' (username, id) 这会影响我们的数据在任何情况下的工作方式吗?消除这种情况会提高数据库的效率吗?我得出结论,它们是多余的,但我很好奇,在我之前的人是否出于任何原因创建了这些索引。我总是消除多余的索引,我注意到写作速度的提高对查询速度没有任何影响 我能想到的情况是,有一个冗余索引可能会提高读取速度,但这是不可能的,

目前正在处理一个MySQL数据库,该数据库具有如下关键声明

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

这会影响我们的数据在任何情况下的工作方式吗?消除这种情况会提高数据库的效率吗?我得出结论,它们是多余的,但我很好奇,在我之前的人是否出于任何原因创建了这些索引。

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

我能想到的情况是,有一个冗余索引可能会提高读取速度,但这是不可能的,而且增加的幅度将是最小的


总之,我强烈建议删除冗余索引:这将提高写入速度。

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

我能想到的情况是,有一个冗余索引可能会提高读取速度,但这是不可能的,而且增加的幅度将是最小的


总之,我强烈建议删除冗余索引:这将提高写作速度。

关于这一点,以下是一篇很好的文章:

MySQL允许用户创建多个索引,这些索引可能是 中相同(重复索引)或部分相似(冗余索引) 它的结构。尽管重复索引没有任何优势,但也存在一些问题 在某些情况下,冗余索引可能会有所帮助。然而,两者 有缺点重复和冗余索引会减慢更新速度 和插入操作。因此,这通常是一个好主意 并将其移除。


这方面有一篇很好的评论:

MySQL允许用户创建多个索引,这些索引可能是 中相同(重复索引)或部分相似(冗余索引) 它的结构。尽管重复索引没有任何优势,但也存在一些问题 在某些情况下,冗余索引可能会有所帮助。然而,两者 有缺点重复和冗余索引会减慢更新速度 和插入操作。因此,这通常是一个好主意 并将其移除。


列表中只有1个冗余密钥列表中只有1个冗余密钥