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

資訊專欄INFORMATION COLUMN

分布式 - 跨庫分頁

littlelightss / 2442人閱讀

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

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

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

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

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

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

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

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

缺點(diǎn): 禁止跳頁查詢。

[推薦] 二次查詢

數(shù)學(xué)原理:對于一個(gè)有序序列分成 M 個(gè)長度不等的有序子序列,M個(gè)有序子序列中每個(gè)有序子序列前X個(gè)元素中的最大值集中起來,再取其中最小值,則該最小值一定小于等于原來有序序列的第 M*X 個(gè)元素值。
假設(shè)該最小值大于原序列的第 MX 個(gè)元素值,那么M個(gè)有序子序列后面第X+個(gè)元素值都大于原序列的第 MX 個(gè)元素值,即構(gòu)成原序列前MX 個(gè)元素只能是M個(gè)有序子序列的前X-個(gè)元素,因?yàn)镸X- < 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步的各個(gè)分庫的返回結(jié)果比第一步多,當(dāng)然time_min的那個(gè)分庫的返回結(jié)果肯定不變(所以time_min的那個(gè)分庫的sql在實(shí)現(xiàn)時(shí)可以不用執(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)點(diǎn): 該策略的性能是幾乎恒定。

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

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

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

相關(guān)文章

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

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

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

    摘要:即服務(wù)不能無響應(yīng),或出錯(cuò)分區(qū)的容忍性,這里的分區(qū)不是指數(shù)據(jù)分布式存儲中的分區(qū)。假設(shè)一個(gè)分布式系統(tǒng)中,有兩個(gè)節(jié)點(diǎn),處于分區(qū)狀態(tài)。在大多數(shù)的分布式系統(tǒng)設(shè)計(jì)中,人們多會選擇滿足兩點(diǎn)特性。為了解決最終的一致性,這就涉及到分布式事務(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)系的分片策略,實(shí)現(xiàn)了高效的多表查詢。支持多租戶方案。 前言 對于業(yè)務(wù)量越來越大的時(shí)候,單表數(shù)據(jù)超過幾千萬,甚至上億時(shí),一張表里面查詢真的會很費(fèi)時(shí)。而在分布式系統(tǒng)中,分表分庫也是常用的一種解決此類瓶頸的手段。今天就選用springboot+myca...

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

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

    archieyang 評論0 收藏0

發(fā)表評論

0條評論

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