覆盖索引的适当现场订单-MySQL
-
22-10-2019 - |
题
是否有标准订单来为MySQL中的表创建覆盖索引?这意味着如果我的查询有一个werter子句,顺序和选择语句中的字段,我将以哪个顺序有索引的字段来正确创建覆盖索引?
解决方案
覆盖索引在逗号分隔列表中获取列列表。此列表从左侧开始遍历/审查。如果不使用大多数列,则不使用索引。意思是,拥有一个类似的列列表:
col_a, col_b, col_c
如果查询不包含对 col_a
, ,不会使用它。如果订单更改为:
col_c, col_b, col_a
...然后 col_c
需要在查询中引用。继续使用第二个覆盖索引列示例, col_b
或者 col_a
不必进入查询,但是评估从左到右列列移动。
索引使用的列参考可以在以下条款中:
- 选择
- 在哪里
- 通过...分组
- 有
- 顺序
参考:
其他提示
MySQL使用多列索引的方式,即当您在WHERE子句中指定索引的第一列的已知数量时,查询即将快速,即使您不为其他列指定值。
链接页面上的示例还指出,索引是 不曾用过, ,如果未指定索引中第一列的值。
不隶属于 StackOverflow