本文内容来自YashanDB官网,原文内容请见 https://www.yashandb.com/newsinfo/7802939.html?templateId=1718516

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

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

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

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

测试SQL为:

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

且in中的参数大于300个

该SQL直接运行时间:

【YashanDB知识库】in大量参数时查询性能慢_崖山数据库_02

【问题原因分析】

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

【解决/规避方法】

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

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

【YashanDB知识库】in大量参数时查询性能慢_崖山数据库_03

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

走range scan的时间:毫秒级

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

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

【修复版本】\-