联合索引生效问题

发布于 2022-09-12 04:51:11 字数 129 浏览 24 评论 0

联合索引中

如果index(a,b,c,d,e,f)

1、那么a,c,d组合会生效吗?a,d,f组合会生效吗?
只要带有a字段就可以吗?

2、如果where带有主键id,需要把id需要加入到联合索引中吗

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

听不够的曲调 2022-09-19 04:51:11

如果index(a,b,c,d,e,f)

1、那么a,c,d组合会生效吗?a,d,f组合会生效吗?只要带有a字段就可以吗?
a,c,d组合会生效(最左原则);
a,d,f组合会生效(索引下推);
只要带有a字段就可以(最左原则)

2.如果where带有主键id,需要把id需要加入到联合索引中吗?
不需要,MySQL的索引自带主键,在所有索引行的最右边。

烙印 2022-09-19 04:51:11
  1. 索引最左原则了解下,需要有a。
  2. 不需要,主键是聚簇索引。其他非聚簇索引很可能需要进行回表操作。
  3. 联合索引,一般使用时考虑能否使用到覆盖索引,比如index(a,b,c,d,e,f),如果查询的字段只有a,b,c,d,e,f的话,此时不用回表查询聚簇索引,效率更高。
  4. 索引是需要占存储空间,影响数据增删改效率。所以建索引不是越多越好(建议)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文