mysql - 在 MySQL 中,当我的 where 子句中有“in”条件时,我可以使用索引吗?
问题描述
鉴于此查询;
select my_field1
from my_table
where my_field2 in ('five', 'six')
如果我在 my_field2 上有一个索引,它就不会被使用。有没有办法优化它以利用我的索引?
解决方案
当“基数”较低时,优化器会选择忽略索引。这是因为简单地扫描整个表可能比在INDEX's
BTree 和数据 BTree 之间来回跳动更快。
推荐阅读
- r - Is there a way to make hyperlinks in the pop-up of a tm_bubbles item?
- python - beautifulsoup4 不返回内容
- c++ - 如何修复此错误:在 malloc_error_break 中设置断点以进行调试
- python - 读取作为矩阵的文本文件
- tsql - 添加新列只是为了拥有聚簇表
- android - 使用 Android Studio 的开发人员将如何从 Material Theme Editor 中受益?
- game-maker - 未添加高分
- typescript - 如何使用来自外部 .d.ts 文件的导出类型?
- xslt - 在 XSLT 1.0 中应用多个模板,例如 XSLT 2.0
- apache-spark - 基于 sorted-based shuffle 的数据文件是什么样的?