首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当进行一个select查询时,该查询是否有可能接受多个索引(单索引或复合索引)

问当进行一个select查询时,该查询是否有可能接受多个索引(单索引或复合索引)
EN

Stack Overflow用户
提问于 2016-10-31 12:38:44
回答 1查看 27关注 0票数 0

当进行一个select查询时,该查询是否有可能接受多个索引(单索引或复合索引)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-31 13:02:22

正如MySQL关于MySQL如何优化WHERE子句的文档所述:

每个表索引都会被查询,并且使用最好的索引,除非优化器认为使用表扫描更有效。

如果使用索引合并优化,上述规则有一个轻微的例外:

Index方法用于检索具有多个范围扫描的行,并将其结果合并为一个。合并可以生成其底层扫描的联合、交叉或联合交叉。此访问方法从单个表合并索引扫描;它不合并多个表的扫描。 在“解释输出”中,index_merge方法在类型列中显示为index_merge。在本例中,键列包含使用的索引列表,key_len包含这些索引最长关键部分的列表。

但是,如果您的索引是经过深思熟虑的,那么多列索引将覆盖大约50%的索引合并用例。索引合并并不是1索引规则的完全例外,因为单独的索引被放在一起处理,就像进程中的单个索引一样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40342366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档