成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

分布式 - 跨庫分頁

littlelightss / 2495人閱讀

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

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

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

優(yōu)點: 精準(zhǔn)返回所需數(shù)據(jù)。

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

禁止跳頁查詢(業(yè)務(wù)折衷)

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

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

缺點: 禁止跳頁查詢。

[推薦] 二次查詢

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

步驟:

改寫分庫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步的各個分庫的返回結(jié)果比第一步多,當(dāng)然time_min的那個分庫的返回結(jié)果肯定不變(所以time_min的那個分庫的sql在實現(xiàn)時可以不用執(zhí)行)。假設(shè)所有分庫總共多出 K 條數(shù)據(jù),則全局_offset = ceil(X/M) * M - K 。(詳見上面原理)

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

優(yōu)點: 該策略的性能是幾乎恒定。

缺點: 兩次查詢;內(nèi)存中要將結(jié)果集合并。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/70935.html

相關(guān)文章

  • 干貨:布式系統(tǒng)學(xué)習(xí)筆記

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

    劉德剛 評論0 收藏0
  • 干貨:布式系統(tǒng)學(xué)習(xí)筆記

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

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

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

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

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

    archieyang 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<