小弟最近在看关于数据在分库分页后的一些查询方式。 发现了有以下几种:
主要有些疑惑的是第三种 假设: 分了两张表 user_1,user_2 ,在单表中默认查询为 limit 5,5 该页数据数据因删除等操作导致全部存在 user_1 表中,user_2 表不存在该页数据。 那么在「二次查询法」中的初次查询时,sql 已经被改写为 limit 2,5 在初次查询就已经缺失数据的情况下,「二次查询法」怎么解决这种问题呢。
1
xuanbg 2022-11-17 16:57:36 +08:00
分表规则必须要解决一个问题:你需要知道在哪个表查询目标数据。
|
2
loveaeen OP @xuanbg 我知道我有两张 user 分表,我也采用「二次查询法」来归并排序分页数据,但是某一页数据却全部都存在 user_1 表中,「二次查询法」如何解决该问题呢?
我应该也没法提前知道这页数据具体在哪张表吧 |
3
zoharSoul 2022-11-17 17:17:45 +08:00
这跟分库分表没关系吧
|
5
pkoukk 2022-11-17 19:04:05 +08:00
既然有 limit offset ,那就是要分页咯,稳定分页就意味着必须排序
所以你的排序字段应该就是你的分表依据 如果排序和分表没关系,那只能多表查完合并大内存排序了 |