Apache Ignite升级至2.13/2.14后LEFT JOIN子查询SQL执行极慢
Apache Ignite 版本迁移后SQL查询性能骤降问题
将Apache Ignite从2.7.6版本迁移至2.13或2.14版本后,发现下述SQL查询执行速度极慢:
select T0.* , T1.HIDE from TABLE1 as T0 left JOIN ( select key1, key2, count AS HIDE from TABLE1 GROUP BY key1, key2 ) as T1 ON T0.key1 = T1.key1 AND T0.key2 = T1.key2;
在数千条数据的表中已能看到明显的执行时长差异,数据量超10万时查询甚至无法完成。相关日志、DDL文件及执行计划可在Apache Ignite官方问题追踪系统中查看(编号IGNITE-17900)。
不同版本执行耗时对比
Ignite v2.13.0 与 v2.14.0
- 2100条数据:执行耗时8秒
- 4400条数据:执行耗时22秒
Ignite v2.7.6
- 2100条数据:执行耗时3毫秒
- 4400条数据:执行耗时4毫秒
排查与优化尝试
- 尝试为
key1、key2列添加索引,性能无改善 - 最初使用H2 SQL引擎测试,在Ignite 2.14.0中切换为Calcite SQL引擎后,执行计划改变,性能大幅提升:
Ignite v 2.14.0 with Calcite SQL engine execution time 55 ms with 4700 records
内容的提问来源于stack exchange,提问作者Dren Butković
相关产品推荐
相关产品推荐

