需求:ORDER BY x OFFSET 10000 LIMIT 4; 如何在分库下实现(假设分3库)
步骤一、查询改写: ORDER BY x OFFSET3333LIMIT 4
[4,7,9,10] <= 1库返回
[3,5,6,7] <= 2库返回
[6,8,9,11] <= 3库返回
步骤二、找到步骤一返回的min和max,即3和11
步骤三、通过min和max二次查询:ORDER BY x WHERE xBETWEEN 3 AND 11
[3,4,7,9,10] <= 1库返回,4在1库offset是3333,于是3在1库的offset是3332
[3,5,6,7,11] <= 2库返回,3在2库offset是3333
[3,5,6,8,9,11] <= 3库返回,6在3库offset是3333,于是3在3库的offset是3331
步骤四、找出全局OFFSET
3是全局offset3332+3333+3331=9996
当当当当,跳过3,3,3,4,于是全局OFFSET 10000 LIMIT 4是[5,5,6,6]