A 尽量包含查询需要的列,避免回表
B 提过最好的过滤效率,减少扫描的数据量
C 等值条件放在索引的前面
D 提供查询需要的结果顺序,避免拍寻
3 个赞
A、B、C
2 个赞
D 是错误描述 ——因为它没有说明这是利用索引的有序性,而只是笼统地说“避免排序”,容易引发误解。
2 个赞
没毛病
正确选项是 A、B、C、D
A 尽量包含查询需要的列,避免回表
这是覆盖索引的核心思想。索引中包含查询所需的所有列,就不需要再回表读取数据行,能大幅减少 I/O 开销。
B 提供最好的过滤效率,减少扫描的数据量
索引的核心作用就是快速过滤数据,让数据库只扫描满足条件的少量数据,而不是全表扫描,是优化的关键目标。
C 等值条件放在索引的前面
这符合联合索引的 “最左匹配原则”。等值条件放在前面,能快速定位索引的前缀范围,后续的范围条件或排序条件也能更高效地利用索引。
D 提供查询需要的结果顺序,避免排序
如果索引的顺序和查询的 ORDER BY 一致,数据库可以直接按索引顺序返回结果,无需额外的排序操作(filesort),显著提升性能。