分区表分区裁剪不生效的问题

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:3.0.11
  • 【问题描述】:我有一张根据id做hash分区的表,分区数为3, 在使用 id in 查询的时候 in条件里的id是按照 id%3 分组的,比如 id in (1,4,7),也就是说in里边的id保证是在一个分区下的,但是我explain查询的时候发现还是做了全表所有分区的扫描,这个能优化到只扫描这一组ID所在的分区吗?

我看官方文档上说了hash分区不支持in条件查询,但是这个实现了的话对于in查询有很好的性能提升。

还有一个问题,等值查询我用 (id=1 OR id=3)的时候也不支持分区裁剪,还是会扫描所有的分区。

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出打印结果,请务必全选并复制粘贴上传。

正在分析,请稍等

你好,我们正在支持分区表上 in 条件裁剪这个功能,可以关注 github issue 查看最新进展:https://github.com/pingcap/tidb/issues/16681

1赞

太好了,感谢!

:ok_hand:,感谢提供的信息~

嗯,看到issue了,我看issue里的例子是range分区的,希望到时候hash分区也要支持啊!

这个到时候还是要看开发安排,新版本会具体描述,多谢

你好,

hash partition 也在哦~

:+1:

:ok_hand: