单数字主键但数据量亿级的表根据主键做hash分区有必要吗?

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【TiDB 版本】5.7.25-TiDB-v4.0.10

【问题描述】如题所示,我们有一张记录数为2亿+的表,一个数字的id字段为主键,我们在这张表上用id字段做了hash 分区,但是现在根据 id in (*) 的条件去查询还是比较慢,针对这个情况我想问一下:对于这种单数字主键但数据量比较大的表做分区更好还是不做分区更好?考虑到TiDB底层的region的数据分布机制,再在上层做一次分区会不会反而导致在某些情况下查询变慢?


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

提供一下表结构、SQL 语句、explain analyze 执行结果看下。
可以建一下非分区表对比一下看下执行计划是否有区别,如果分区表没有很好的达到分区裁剪的效果,那可以考虑不用分区表。

不考虑具体的表结构,从TiDB本身的架构设计的角度能给一些建议吗?

这个不确定是不是 TiDB 优化器有问题还是 TiDB 本身架构导致的问题,没有具体例子,不太好判断。