【YashanDB知识库】in大量参数时查询性能慢

92 阅读1分钟

本文内容来自YashanDB官网,原文内容请见 www.yashandb.com/newsinfo/78…

【标题】 in大量参数时查询性能慢

【关键字】 in 大量参数 FAST FULL SCAN INDEX RANGE SCAN

【问题描述】 测试表数据量200w,表结构如图,且在PHONE字段上创建了索引

测试SQL为:

select name,sum(id) from test1119 where phone in (...) group by name;

且in中的参数大于300

该SQL直接运行时间:

【问题原因分析】

通过explain可以看到执行计划走了FFS,但是当前in大量参数的场景下走INDEX FAST FULL SCAN的性能低于走INDEX RANGE SCAN。

【解决/规避方法】

1、重新收集统计信息,检查收集统计信息后能否自动走上INDEX RANGE SCAN

2、如果仍然没有走上INDEX RANGE SCAN,则使用hint,修改SQL为:

走range scan的时间:毫秒级

【影响范围】 23.2.8.100之前的所有版本

【修复版本】-