扫码阅读
手机扫码阅读

一个不留神,索引就创建重复了

96 2024-11-28

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:一个不留神,索引就创建重复了
文章来源:
江南一点雨
扫码关注公众号
索引冗余问题总结

索引冗余问题总结

松哥讨论了在使用MySQL的InnoDB引擎时,如何无意中创建重复和冗余的B+Tree索引,并提供了如何避免这些常见错误的建议。以下是两个主要问题的总结:

1. 与联合索引重复

由于最左匹配原则,当创建一个包含字段usernameaddress的联合索引(user_index1)时,再为username字段单独创建索引(user_index2)是不必要的,因为联合索引已覆盖这种用例。然而,在某些特殊情况下,如果username与一个特别长的字段一起使用时,搜索效率可能降低,这时可以考虑创建重复的单字段索引。

2. 主键加入联合索引中

在讨论了聚簇索引(主键索引)和非聚簇索引(二级或辅助索引)的区别后,松哥指出没有必要在联合索引中包含主键。因为非主键索引的叶子节点已经存储了主键值,再将主键加入联合索引会造成冗余。例如,索引user_index不应该同时包含username字段和id主键。

总之,这些注意点旨在避免在MySQL中创建不必要的重复索引,以优化数据库性能。参考资料包括《高性能 MySQL》。

想要了解更多内容?

查看原文:一个不留神,索引就创建重复了
文章来源:
江南一点雨
扫码关注公众号