单表数据量很大,比如订单日志表,根据订单iD来进行key分区。
在项目中查询批量订单的日志,比如5万订单,分批查询,每次查100个订单的,那么如何将在相同分区的订单id归纳在一起
根据订单id先排序再分批
这个问题是指sql层面怎么写,还是存储层面设计
程序中选100个订单号当查询条件,但是发现这些订单对应的日志数据分散在多个分区
key分区的规则也是这个么
不是已经根据订单id来分区了么
你要是随机的100个订单号而不是连续的,日志数据分散在多个分区不是正常吗
OK,我试试排序再选100个
好的,我试一下
根据订单号分组
可以通过在应用层按订单 ID 的哈希值分组,然后分批查询同一个分区的订单,可以有效减少 TiDB 跨分区查询的开销,提升批量查询的性能,试试看
感谢老师分享
use over partition by
这个还是单独创建一个整型字段来划分分区吧,最好范围
排序有没有效果要看你的表键是怎么存放的了
你是想每次查同一个分片上的id吗
按分区键分组/排序