为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:
【CPU】:
【问题描述】*:
有sql如下,一个表18亿条数据,回表2亿多次,单独查询都得20分钟以上
改成全表扫描之后,执行时间不稳定,时快是慢,这个表大小超过1T,数据无法全部缓冲到内存中
ENABLE_IN_VALUE_LIST_OPT调整为1后,执行时间稳定在40s左右,执行计划如下,这就有点看不懂了,参数以前是6
值为 1:基础优化,适用于小列表和资源有限的场景。
值为 6:高级优化,适用于大列表和对性能要求较高的场景。
可以看下执行快和慢两个索引ddl,
目前=6看慢是走的bus_date>20240331 范围扫描条件,结果集应该非常大,
=1执行快 先走的是bus_date in(xxx,xx)条件,这个条件过滤性应该还可以执行的快。
不过这俩条件看着是重复的,条件冲突,可以将bus_date>xxx去掉。