「跨庫分頁」的四種方案

 

方法一:全局視野法性能

(1)將order by time offset X limit Y,改寫成order by time offset 0 limit X+Y排序

(2)服務層對獲得的N*(X+Y)條數據進行內存排序,內存排序後再取偏移量X後的Y條記錄內存

這種方法隨着翻頁的進行,性能愈來愈低。it

 

方法二:業務折衷法-禁止跳頁查詢方法

(1)用正常的方法取得第一頁數據,並獲得第一頁記錄的time_maxim

(2)每次翻頁,將order by time offset X limit Y,改寫成order by time where time>$time_max limit Yqq

以保證每次只返回一頁數據,性能爲常量。數據

 

方法三:業務折衷法-容許模糊數據查詢

(1)將order by time offset X limit Y,改寫成order by time offset X/N limit Y/Nco

 

方法四:二次查詢法

(1)將order by time offset X limit Y,改寫成order by time offset X/N limit Y

(2)找到最小值time_min

(3)between二次查詢,order by time between $time_min and $time_i_max

        此次查詢,將各個庫的數據中大於time_min的都取出來

(4)設置虛擬time_min,找到time_min在各個分庫的offset,從而獲得time_min在全局的offset

(5)獲得了time_min在全局的offset,天然獲得了全局的offset X limit Y

 

 

https://mp.weixin.qq.com/s/cMAXYBxmevFV_fwysZqP8w

相關文章
相關標籤/搜索