国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

分布式 - 跨庫分頁

littlelightss / 2450人閱讀

摘要:缺點每個分庫需要返回更多的數據,占用網絡帶寬需要服務層的計算這個算法隨著頁碼的增大即的增大,性能平方級下降。缺點禁止跳頁查詢。假設所有分庫總共多出條數據,則全局。

 select * from T order by time offset X limit Y 的跨M個庫分頁。
全局

每個庫都必須返回 X+Y 個數據,所得到的 M*(X+Y) 在服務層進行內存排序,然后再取總的偏移量X后的Y條記錄。

優點: 精準返回所需數據。

缺點: (1)每個分庫需要返回更多的數據,占用網絡帶寬;(2)需要服務層的計算;(3)這個算法隨著頁碼的增大(即X的增大),性能平方級下降。

禁止跳頁查詢(業務折衷)

獲取第一頁的方式和全局策略是一樣的,但獲取第N頁(N>1)時,我們取 N-1 頁的最大time,即time_max, 對于每個分庫執行 select * from T order by time where time > time_max limit Y,這樣在服務層再總排序取前Y條記錄。

優點: 相比全局策略的性能平方級下降,該策略的性能是恒定的。

缺點: 禁止跳頁查詢。

[推薦] 二次查詢

數學原理:對于一個有序序列分成 M 個長度不等的有序子序列,M個有序子序列中每個有序子序列前X個元素中的最大值集中起來,再取其中最小值,則該最小值一定小于等于原來有序序列的第 M*X 個元素值。
假設該最小值大于原序列的第 MX 個元素值,那么M個有序子序列后面第X+個元素值都大于原序列的第 MX 個元素值,即構成原序列前MX 個元素只能是M個有序子序列的前X-個元素,因為MX- < M*X,所以假設不成立。

步驟:

改寫分庫sql為: select * from T order by time offset ceil(X/M) limit Y

獲取所有分庫sql中返回的最小time中的最小time,即time_min(詳見上面原理)

改寫分庫sql為:select * from T order by time between time_min and 各自分庫的最大time(從第1步中得到)

第3步的各個分庫的返回結果比第一步多,當然time_min的那個分庫的返回結果肯定不變(所以time_min的那個分庫的sql在實現時可以不用執行)。假設所有分庫總共多出 K 條數據,則全局_offset = ceil(X/M) * M - K 。(詳見上面原理)

將第3步返回的結果集合并,即第一條數據就是time_min的那條,其_offset由第四步已經得到;我們直接在該結果集的中從第(原始sql的offset - _offset + 2)條數據開始獲取Y條數據。

優點: 該策略的性能是幾乎恒定。

缺點: 兩次查詢;內存中要將結果集合并。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/70935.html

相關文章

  • 干貨:布式系統學習筆記

    摘要:即服務不能無響應,或出錯分區的容忍性,這里的分區不是指數據分布式存儲中的分區。假設一個分布式系統中,有兩個節點,處于分區狀態。在大多數的分布式系統設計中,人們多會選擇滿足兩點特性。為了解決最終的一致性,這就涉及到分布式事務。 showImg(https://segmentfault.com/img/bV7kd4?w=500&h=253); 一、分布式的兩大場景 數據存儲的分布式 服務的...

    劉德剛 評論0 收藏0
  • 干貨:布式系統學習筆記

    摘要:即服務不能無響應,或出錯分區的容忍性,這里的分區不是指數據分布式存儲中的分區。假設一個分布式系統中,有兩個節點,處于分區狀態。在大多數的分布式系統設計中,人們多會選擇滿足兩點特性。為了解決最終的一致性,這就涉及到分布式事務。 showImg(https://segmentfault.com/img/bV7kd4?w=500&h=253); 一、分布式的兩大場景 數據存儲的分布式 服務的...

    EsgynChina 評論0 收藏0
  • springboot+mycat 分表分庫

    摘要:而在分布式系統中,分表分庫也是常用的一種解決此類瓶頸的手段。支持數據的多片自動路由與聚合,支持等常用的聚合函數支持跨庫分頁。支持通過全局表,關系的分片策略,實現了高效的多表查詢。支持多租戶方案。 前言 對于業務量越來越大的時候,單表數據超過幾千萬,甚至上億時,一張表里面查詢真的會很費時。而在分布式系統中,分表分庫也是常用的一種解決此類瓶頸的手段。今天就選用springboot+myca...

    lakeside 評論0 收藏0
  • “分庫分表" ?選型和流程要慎重,否則會失控

    摘要:但你是否知道分庫分表需要哪些要素拆分過程是復雜的,提前計劃,不要等真正開工,各種意外的工作接踵而至,以至失控。在實施分庫分表策略時,這些個性會造成策略過大不好維護。 更多文章關注微信公眾號《小姐姐味道》 https://mp.weixin.qq.com/s?__... 數據庫中間件之分庫分表 恭喜你,貴公司終于成長到一定規模,需要考慮高可用,甚至分庫分表了。但你是否知道分庫分表需要哪...

    archieyang 評論0 收藏0

發表評論

0條評論

littlelightss

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<