key 分区

单表数据量很大,比如订单日志表,根据订单iD来进行key分区。
在项目中查询批量订单的日志,比如5万订单,分批查询,每次查100个订单的,那么如何将在相同分区的订单id归纳在一起

根据订单id先排序再分批

这个问题是指sql层面怎么写,还是存储层面设计

程序中选100个订单号当查询条件,但是发现这些订单对应的日志数据分散在多个分区

key分区的规则也是这个么

不是已经根据订单id来分区了么

你要是随机的100个订单号而不是连续的,日志数据分散在多个分区不是正常吗

OK,我试试排序再选100个

好的,我试一下

根据订单号分组

可以通过在应用层按订单 ID 的哈希值分组,然后分批查询同一个分区的订单,可以有效减少 TiDB 跨分区查询的开销,提升批量查询的性能,试试看

感谢老师分享

use over partition by

这个还是单独创建一个整型字段来划分分区吧,最好范围

排序有没有效果要看你的表键是怎么存放的了

你是想每次查同一个分片上的id吗

按分区键分组/排序