如果我正在访问的字段是复合索引的一部分,我是不是仍然可以通过引用其中一个字段来获得该索引的好处?

Posted

技术标签:

【中文标题】如果我正在访问的字段是复合索引的一部分,我是不是仍然可以通过引用其中一个字段来获得该索引的好处?【英文标题】:If a field I'm accessing is part of a compound index do I still get the benefits of that index just referencing one of the fields?如果我正在访问的字段是复合索引的一部分,我是否仍然可以通过引用其中一个字段来获得该索引的好处? 【发布时间】:2018-02-12 16:46:11 【问题描述】:

mysql 中,我在 2 个字段 (a,b) 上有一个复合索引。如果我在查询中只访问字段 a,我是否还能获得索引的好处?

谢谢

【问题讨论】:

当您使用WHERE a = 'value' 是...当您使用WHERE b = 'value' 否.. 但是当您需要过滤b 时仍然可以使用索引,例如如果a 和b 是(var )char 列WHERE a > 'a' AND b = 'value' 食谱:mysql.rjweb.org/doc.php/index_cookbook_mysql 【参考方案1】:

想想电话簿。它基本上是对 last_name、first_name 的排序索引。

电话簿以这种方式排序这一事实是否有助于即使您仅按姓氏进行搜索,也能帮助您查找人员?

是的,确实如此。

【讨论】:

以上是关于如果我正在访问的字段是复合索引的一部分,我是不是仍然可以通过引用其中一个字段来获得该索引的好处?的主要内容,如果未能解决你的问题,请参考以下文章

如果我在一个字段上同时具有简单索引和复合索引,那么在包含该字段的查询中使用哪一个?

MongoDB 复合索引与单字段索引在空间消耗方面的对比

MongoDB 中的复合索引是不是改进了多重匹配(而不是排序)?

带有可选字段的 MongoDB 索引

数组字段上的唯一复合索引

sql技巧