扫码阅读
手机扫码阅读
一个不留神,索引就创建重复了
96 2024-11-28
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
查看原文:一个不留神,索引就创建重复了
文章来源:
江南一点雨
扫码关注公众号
索引冗余问题总结
松哥讨论了在使用MySQL的InnoDB引擎时,如何无意中创建重复和冗余的B+Tree索引,并提供了如何避免这些常见错误的建议。以下是两个主要问题的总结:
1. 与联合索引重复
由于最左匹配原则,当创建一个包含字段username
和address
的联合索引(user_index1
)时,再为username
字段单独创建索引(user_index2
)是不必要的,因为联合索引已覆盖这种用例。然而,在某些特殊情况下,如果username
与一个特别长的字段一起使用时,搜索效率可能降低,这时可以考虑创建重复的单字段索引。
2. 主键加入联合索引中
在讨论了聚簇索引(主键索引)和非聚簇索引(二级或辅助索引)的区别后,松哥指出没有必要在联合索引中包含主键。因为非主键索引的叶子节点已经存储了主键值,再将主键加入联合索引会造成冗余。例如,索引user_index
不应该同时包含username
字段和id
主键。
总之,这些注意点旨在避免在MySQL中创建不必要的重复索引,以优化数据库性能。参考资料包括《高性能 MySQL》。
想要了解更多内容?
查看原文:一个不留神,索引就创建重复了
文章来源:
江南一点雨
扫码关注公众号
江南一点雨的其他文章
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线