【发布时间】:2020-10-12 17:28:00
【问题描述】:
假设我们在 (A, B) 上有一个索引,在 (B, C) 上有一个索引。当做这样的查询时:
SELECT * FROM table WHERE A = const AND B = const ORDER BY C DESC
查询优化器会先在 (A,B) 索引中搜索以过滤 WHERE 类的行,然后再使用 (B, C) 索引快速排序吗?
或者查询仅限于一个索引?没有 B-tree 跳跃?
【问题讨论】:
-
MySQL 很少使用两个索引。但仅适用于 AND 或 OR,不适用于 ORDER BY。
-
两个半相关的东西要研究:“MRR”和“loose scan”。
-
有趣的话题,谢谢你提到@RickJames
标签: mysql sql database indexing database-design