| 物理优化能力 | 核心收益 | 典型场景 | 详细文档 |
| Ordering Index | 避免排序(Skip Sort)、流式聚集、LIMIT 提前终止 | ORDER BY + LIMIT 的 Top-N、GROUP BY 聚合 | Ordering Index |
| Adaptive Ordering Index | 统计信息偏差容错、运行时自动切换备选计划 | 统计信息不准确的复杂排序查询 | Adaptive Ordering Index |
| Runtime Filter | JOIN 数据量削减、减少网络与计算开销 | 大表 JOIN、Hash Join 探测侧过滤 | Runtime Filter |
一、Ordering Index
Ordering Index(有序索引)不是一种新的索引类型,而是指优化器利用普通索引天然有序的特性,按查询需要的顺序读取数据。当索引顺序与 ORDER BY 或 GROUP BY 的需求兼容时,可以避免 filesort,减少排序的 CPU、内存和临时空间开销(Skip Sort);实现流式聚集,相同分组数据连续到达,完成一组即可输出一组;配合 LIMIT 提前终止扫描,在取得足够结果后停止读取;在多表 Join 场景中,通过 LIMIT-aware Join Order 优化 Join 顺序。
二、Adaptive Ordering Index
Adaptive Ordering Index(自适应排序索引)用于降低 ORDER BY 或 GROUP BY 配合 LIMIT 查询因统计信息偏差而选错排序索引的风险。优化器在首轮执行中动态计算运行时检查点,边读取边验证索引返回的数据是否真正满足排序要求。若验证失败,自动切换到备选计划,通过透明重新优化执行,避免一次统计偏差导致的长期性能退化。
三、Runtime Filter
Runtime Filter(运行时过滤器)是一种在 JOIN 执行过程中动态生成的过滤机制。优化器从 JOIN 的一侧收集过滤条件(如哈希表键值集合、范围边界等),并将这些条件实时推送到 JOIN 的另一侧,在数据被读取后立即过滤掉不匹配的行,从而大幅减少 JOIN 操作的实际处理数据量,降低网络传输和计算开销。
注意:说明:
注意:以上物理优化能力的详细参数配置、索引设计指南及调优案例,请参见 SQL 调优。