久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Mysql中如何實(shí)現(xiàn)水平分表

150次閱讀
沒有評論

共計(jì) 1284 個(gè)字符,預(yù)計(jì)需要花費(fèi) 4 分鐘才能閱讀完成。

本篇文章給大家分享的是有關(guān) Mysql 中如何實(shí)現(xiàn)水平分表,丸趣 TV 小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著丸趣 TV 小編一起來看看吧。

 
1.  根據(jù)業(yè)務(wù)屬性拆表
 
這種分表方式的算法大致是取模,hash,md5 等。
 
用業(yè)務(wù)屬性拆表,業(yè)務(wù)關(guān)系復(fù)雜的情況下,如果要根據(jù)其他條件查詢,其他的條件都必須和這個(gè)屬性關(guān)聯(lián)起來,查詢條件必須帶有這個(gè)屬性。
 
例子:
 
用戶 profile 表根據(jù)用戶 ID 取模進(jìn)行水平拆分。
 
社區(qū)里有群組,群組里有應(yīng)用,應(yīng)用有各種類型。可以用群組 ID,應(yīng)用 ID 拆表。
 
問題:
 
根據(jù)某個(gè)條件查詢時(shí)無法獲取拆表的屬性
 
1)  條件中含有分表的信息
 
比如用戶在某網(wǎng)站下了訂單,我們根據(jù)用戶 ID 對訂單進(jìn)行了分表,這樣用戶可以方便地查詢他所關(guān)聯(lián)的訂單。但用戶投訴時(shí),客服需要根據(jù)訂單號查詢訂單,訂單號中可以含有分表的信息,比如訂單拆分成 100 張表,訂單號中可以有兩位用來表明該訂單處于哪張表中
 
2)  用 key-value store 存儲(chǔ)對應(yīng)關(guān)聯(lián)
 
原理是用 key value store 做索引表
 
3)  數(shù)據(jù)冗余
 
需要關(guān)聯(lián)的表可以進(jìn)行數(shù)據(jù)冗余。避免了查詢。
 
例子:
 
購買禮品。購買虛擬禮品時(shí),我們根據(jù)了購買者的 ID 進(jìn)行了拆表,同時(shí)訂單號中也含有了分表信息。但是用戶還可能根據(jù)被贈(zèng)送方進(jìn)行查詢,這時(shí)我們可以在購買成功后為被贈(zèng)送方冗余生成一條記錄。
 
4)  緩存,NOSQL
 
和數(shù)據(jù)冗余類似。例子中提到的群組應(yīng)用的拆表例子,我們已經(jīng)按照群組 ID 和應(yīng)用類型進(jìn)行了分表。但是當(dāng)我要查詢最近所有類型的應(yīng)用時(shí),就遇到困難了。我們需要把該群組的所有應(yīng)用類型都查詢一遍,而且還要再進(jìn)行排序,分頁等等。其實(shí),可以用緩存的方式存儲(chǔ)最近幾百條應(yīng)用。
 
2.  根據(jù)時(shí)間拆表
 
當(dāng)表的關(guān)系比較復(fù)雜時(shí),無法根據(jù)某個(gè)維度進(jìn)行分表。但是有明顯的時(shí)效性。
 
例子:
 
想必大家都用微薄,某人發(fā)的微薄,會(huì)被推送到千家萬戶。所以某條微薄是無法根據(jù)用戶 ID 進(jìn)行分表查詢。而微薄是有很強(qiáng)的時(shí)效性的。一年前的默認(rèn)的動(dòng)態(tài)信息是不會(huì)再關(guān)心的。我們把微薄按時(shí)間分表,三個(gè)月一張表。而行級緩存(memcached)只存儲(chǔ)了一個(gè)月。用戶微薄收件箱(微薄 ID 列表)一般都是限長的。當(dāng)緩存服務(wù)器重啟或不命中時(shí),需要查詢 Mysql,mysql 按時(shí)間分表,緩存不命中的情況下,大部分情況下都是查近三個(gè)月的微薄。所以近 1 年的微薄我們可以存儲(chǔ)在物理資源比較好的服務(wù)器上。
 
3.  根據(jù)自增長 ID 拆表
 
這種分割法不是取模分,而是每張表存指定量的數(shù)據(jù)。如果數(shù)據(jù)量到了,就存放到新表中。這樣可以完全控制每張表的數(shù)據(jù)量。關(guān)系非常簡單并且有時(shí)效性的情況下可以用。
 
4.  數(shù)據(jù)遷移的方式
 
當(dāng)一些很久之前的數(shù)據(jù),很少再查詢。比如員工工資表,我們可以只存今年的工資情況。而歷史數(shù)據(jù)我們可以遷移到一張 salary_old 表中, 保證數(shù)據(jù)不會(huì)丟失。但也可以用來查詢。

以上就是 Mysql 中如何實(shí)現(xiàn)水平分表,丸趣 TV 小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請關(guān)注丸趣 TV 行業(yè)資訊頻道。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-03發(fā)表,共計(jì)1284字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 大化| 京山县| 碌曲县| 秦安县| 北宁市| 蓬安县| 淳化县| 昌吉市| 东方市| 松潘县| 来安县| 宝坻区| 岳池县| 兰溪市| 轮台县| 奈曼旗| 巴中市| 尖扎县| 万载县| 高平市| 鄄城县| 皮山县| 乳山市| 万盛区| 堆龙德庆县| 米易县| 西乡县| 时尚| 抚远县| 朝阳县| 永顺县| 苍梧县| 广东省| 江源县| 三江| 三亚市| 磐石市| 稻城县| 临武县| 鄂托克前旗| 长宁区|