方法一:全局視野法性能
(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