欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是分庫分表?為什么分庫分表?什么情況下會(huì)用分庫分表呢?

OSC開源社區(qū) ? 來源:程序員小富 ? 作者:小富 ? 2022-11-30 09:37 ? 次閱讀

什么是分庫分表

分庫分表是在海量數(shù)據(jù)下,由于單庫、表數(shù)據(jù)量過大,導(dǎo)致數(shù)據(jù)庫性能持續(xù)下降的問題,演變出的技術(shù)方案。

分庫分表是由分庫和分表這兩個(gè)獨(dú)立概念組成的,只不過通常分庫與分表的操作會(huì)同時(shí)進(jìn)行,以至于我們習(xí)慣性的將它們合在一起叫做分庫分表。

397c9e16-6fe6-11ed-8abf-dac502259ad0.png

通過一定的規(guī)則,將原本數(shù)據(jù)量大的數(shù)據(jù)庫拆分成多個(gè)單獨(dú)的數(shù)據(jù)庫,將原本數(shù)據(jù)量大的表拆分成若干個(gè)數(shù)據(jù)表,使得單一的庫、表性能達(dá)到最優(yōu)的效果(響應(yīng)速度快),以此提升整體數(shù)據(jù)庫性能。

為什么分庫分表

單機(jī)數(shù)據(jù)庫的存儲(chǔ)能力、連接數(shù)是有限的,它自身就很容易會(huì)成為系統(tǒng)的瓶頸。當(dāng)單表數(shù)據(jù)量在百萬以里時(shí),我們還可以通過添加從庫、優(yōu)化索引提升性能。

一旦數(shù)據(jù)量朝著千萬以上趨勢(shì)增長,再怎么優(yōu)化數(shù)據(jù)庫,很多操作性能仍下降嚴(yán)重。為了減少數(shù)據(jù)庫的負(fù)擔(dān),提升數(shù)據(jù)庫響應(yīng)速度,縮短查詢時(shí)間,這時(shí)候就需要進(jìn)行分庫分表。

為什么需要分庫?

容量

我們給數(shù)據(jù)庫實(shí)例分配的磁盤容量是固定的,數(shù)據(jù)量持續(xù)的大幅增長,用不了多久單機(jī)的容量就會(huì)承載不了這么多數(shù)據(jù),解決辦法簡單粗暴,加容量!

連接數(shù)

單機(jī)的容量可以隨意擴(kuò)展,但數(shù)據(jù)庫的連接數(shù)卻是有限的,在高并發(fā)場(chǎng)景下多個(gè)業(yè)務(wù)同時(shí)對(duì)一個(gè)數(shù)據(jù)庫操作,很容易將連接數(shù)耗盡導(dǎo)致too many connections報(bào)錯(cuò),導(dǎo)致后續(xù)數(shù)據(jù)庫無法正常訪問。

可以通過max_connections查看MySQL最大連接數(shù)。

showvariableslike'%max_connections%'
3990e16e-6fe6-11ed-8abf-dac502259ad0.png

將原本單數(shù)據(jù)庫按不同業(yè)務(wù)拆分成訂單庫、物流庫、積分庫等不僅可以有效分?jǐn)倲?shù)據(jù)庫讀寫壓力,也提高了系統(tǒng)容錯(cuò)性。

為什么需要分表?

做過報(bào)表業(yè)務(wù)的同學(xué)應(yīng)該都體驗(yàn)過,一條SQL執(zhí)行時(shí)間超過幾十秒的場(chǎng)景。

導(dǎo)致數(shù)據(jù)庫查詢慢的原因有很多,SQL沒命中索引、like掃全表、用了函數(shù)計(jì)算,這些都可以通過優(yōu)化手段解決,可唯獨(dú)數(shù)據(jù)量大是MySQL無法通過自身優(yōu)化解決的。慢的根本原因是InnoDB存儲(chǔ)引擎,聚簇索引結(jié)構(gòu)的 B+tree 層級(jí)變高,磁盤IO變多查詢性能變慢,詳細(xì)原理自行查找一下,這里不用過多篇幅說明。

阿里的開發(fā)手冊(cè)中有條建議,單表行數(shù)超500萬行或者單表容量超過2GB,就推薦分庫分表,然而理想和實(shí)現(xiàn)總是有差距的,阿里這種體量的公司不差錢當(dāng)然可以這么用,實(shí)際上很多公司單表數(shù)據(jù)幾千萬、億級(jí)別仍然不選擇分庫分表。

39a143f6-6fe6-11ed-8abf-dac502259ad0.png

什么時(shí)候分庫分表

技術(shù)群里經(jīng)常會(huì)有小伙伴問,到底什么情況下會(huì)用分庫分表呢?

分庫分表要解決的是現(xiàn)存海量數(shù)據(jù)訪問的性能瓶頸,對(duì)持續(xù)激增的數(shù)據(jù)量所做出的架構(gòu)預(yù)見性。

是否分庫分表的關(guān)鍵指標(biāo)是數(shù)據(jù)量,我們以fire100.top這個(gè)網(wǎng)站的資源表 t_resource為例,系統(tǒng)在運(yùn)行初始的時(shí)候,每天只有可憐的幾十個(gè)資源上傳,這時(shí)使用單庫、單表的方式足以支持系統(tǒng)的存儲(chǔ),數(shù)據(jù)量小幾乎沒什么數(shù)據(jù)庫性能瓶頸。

但某天開始一股神秘的流量進(jìn)入,系統(tǒng)每日產(chǎn)生的資源數(shù)據(jù)量暴增至十萬甚至上百萬級(jí)別,這時(shí)資源表數(shù)據(jù)量到達(dá)千萬級(jí),查詢響應(yīng)變得緩慢,數(shù)據(jù)庫的性能瓶頸逐漸顯現(xiàn)。

以MySQL數(shù)據(jù)庫為例,單表的數(shù)據(jù)量在達(dá)到億條級(jí)別,通過加索引、SQL調(diào)優(yōu)等傳統(tǒng)優(yōu)化策略,性能提升依舊微乎其微時(shí),就可以考慮做分庫分表了。

既然MySQL存儲(chǔ)海量數(shù)據(jù)時(shí)會(huì)出現(xiàn)性能瓶頸,那么我們是不是可以考慮用其他方案替代它?比如高性能的非關(guān)系型數(shù)據(jù)庫MongoDB?

可以,但要看存儲(chǔ)的數(shù)據(jù)類型!

現(xiàn)在互聯(lián)網(wǎng)上大部分公司的核心數(shù)據(jù)幾乎是存儲(chǔ)在關(guān)系型數(shù)據(jù)庫(MySQL、Oracle等),因?yàn)樗鼈冇兄鳱oSQL如法比擬的穩(wěn)定性和可靠性,產(chǎn)品成熟生態(tài)系統(tǒng)完善,還有核心的事務(wù)功能特性,也是其他存儲(chǔ)工具不具備的,而評(píng)論、點(diǎn)贊這些非核心數(shù)據(jù)還是可以考慮用MongoDB的。

如何分庫分表

分庫分表的核心就是對(duì)數(shù)據(jù)的分片(Sharding)并相對(duì)均勻的路由在不同的庫、表中,以及分片后對(duì)數(shù)據(jù)的快速定位與檢索結(jié)果的整合。

分庫與分表可以從:垂直(縱向)和 水平(橫向)兩種緯度進(jìn)行拆分。下邊我們以經(jīng)典的訂單業(yè)務(wù)舉例,看看如何拆分。

39b35f96-6fe6-11ed-8abf-dac502259ad0.png

垂直拆分

1、垂直分庫

垂直分庫一般來說按照業(yè)務(wù)和功能的維度進(jìn)行拆分,將不同業(yè)務(wù)數(shù)據(jù)分別放到不同的數(shù)據(jù)庫中,核心理念 專庫專用。

按業(yè)務(wù)類型對(duì)數(shù)據(jù)分離,剝離為多個(gè)數(shù)據(jù)庫,像訂單、支付、會(huì)員、積分相關(guān)等表放在對(duì)應(yīng)的訂單庫、支付庫、會(huì)員庫、積分庫。不同業(yè)務(wù)禁止跨庫直連,獲取對(duì)方業(yè)務(wù)數(shù)據(jù)一律通過API接口交互,這也是微服務(wù)拆分的一個(gè)重要依據(jù)。

39c21c2a-6fe6-11ed-8abf-dac502259ad0.png

垂直分庫

垂直分庫很大程度上取決于業(yè)務(wù)的劃分,但有時(shí)候業(yè)務(wù)間的劃分并不是那么清晰,比如:電商中訂單數(shù)據(jù)的拆分,其他很多業(yè)務(wù)都依賴于訂單數(shù)據(jù),有時(shí)候界線不是很好劃分。

垂直分庫把一個(gè)庫的壓力分?jǐn)偟蕉鄠€(gè)庫,提升了一些數(shù)據(jù)庫性能,但并沒有解決由于單表數(shù)據(jù)量過大導(dǎo)致的性能問題,所以就需要配合后邊的分表來解決。

2、垂直分表

垂直分表針對(duì)業(yè)務(wù)上字段比較多的大表進(jìn)行的,一般是把業(yè)務(wù)寬表中比較獨(dú)立的字段,或者不常用的字段拆分到單獨(dú)的數(shù)據(jù)表中,是一種大表拆小表的模式。

例如:一張t_order訂單表上有幾十個(gè)字段,其中訂單金額相關(guān)字段計(jì)算頻繁,為了不影響訂單表t_order的性能,就可以把訂單金額相關(guān)字段拆出來單獨(dú)維護(hù)一個(gè)t_order_price_expansion擴(kuò)展表,這樣每張表只存儲(chǔ)原表的一部分字段,通過訂單號(hào)order_no做關(guān)聯(lián),再將拆分出來的表路由到不同的庫中。

39dce7f8-6fe6-11ed-8abf-dac502259ad0.png

數(shù)據(jù)庫它是以行為單位將數(shù)據(jù)加載到內(nèi)存中,這樣拆分以后核心表大多是訪問頻率較高的字段,而且字段長度也都較短,因而可以加載更多數(shù)據(jù)到內(nèi)存中,減少磁盤IO,增加索引查詢的命中率,進(jìn)一步提升數(shù)據(jù)庫性能。

水平拆分

上邊垂直分庫、垂直分表后還是會(huì)存在單庫、表數(shù)據(jù)量過大的問題,當(dāng)我們的應(yīng)用已經(jīng)無法在細(xì)粒度的垂直切分時(shí),依舊存在單庫讀寫、存儲(chǔ)性能瓶頸,這時(shí)就要配合水平分庫、水平分表一起了。

1、水平分庫

水平分庫是把同一個(gè)表按一定規(guī)則拆分到不同的數(shù)據(jù)庫中,每個(gè)庫可以位于不同的服務(wù)器上,以此實(shí)現(xiàn)水平擴(kuò)展,是一種常見的提升數(shù)據(jù)庫性能的方式。

39ec775e-6fe6-11ed-8abf-dac502259ad0.png

例如:db_orde_1、db_order_2兩個(gè)數(shù)據(jù)庫內(nèi)有完全相同的t_order表,我們?cè)谠L問某一筆訂單時(shí)可以通過對(duì)訂單的訂單編號(hào)取模的方式 訂單編號(hào) mod 2 (數(shù)據(jù)庫實(shí)例數(shù)) ,指定該訂單應(yīng)該在哪個(gè)數(shù)據(jù)庫中操作。

這種方案往往能解決單庫存儲(chǔ)量及性能瓶頸問題,但由于同一個(gè)表被分配在不同的數(shù)據(jù)庫中,數(shù)據(jù)的訪問需要額外的路由工作,因此系統(tǒng)的復(fù)雜度也被提升了。

2、水平分表

水平分表是在同一個(gè)數(shù)據(jù)庫內(nèi),把一張大數(shù)據(jù)量的表按一定規(guī)則,切分成多個(gè)結(jié)構(gòu)完全相同表,而每個(gè)表只存原表的一部分?jǐn)?shù)據(jù)。

例如:一張t_order訂單表有900萬數(shù)據(jù),經(jīng)過水平拆分出來三個(gè)表,t_order_1、t_order_2、t_order_3,每張表存有數(shù)據(jù)300萬,以此類推。

3a010dd6-6fe6-11ed-8abf-dac502259ad0.png

水平分表盡管拆分了表,但子表都還是在同一個(gè)數(shù)據(jù)庫實(shí)例中,只是解決了單一表數(shù)據(jù)量過大的問題,并沒有將拆分后的表分散到不同的機(jī)器上,還在競爭同一個(gè)物理機(jī)的CPU、內(nèi)存、網(wǎng)絡(luò)IO等。要想進(jìn)一步提升性能,就需要將拆分后的表分散到不同的數(shù)據(jù)庫中,達(dá)到分布式的效果。

3a1e478e-6fe6-11ed-8abf-dac502259ad0.png

數(shù)據(jù)存在哪個(gè)庫的表

分庫分表以后會(huì)出現(xiàn)一個(gè)問題,一張表會(huì)出現(xiàn)在多個(gè)數(shù)據(jù)庫里,到底該往哪個(gè)庫的哪個(gè)表里存呢?

上邊我們多次提到過一定規(guī)則 ,其實(shí)這個(gè)規(guī)則它是一種路由算法,決定了一條數(shù)據(jù)具體應(yīng)該存在哪個(gè)數(shù)據(jù)庫的哪張表里。

常見的有 取模算法 、范圍限定算法、范圍+取模算法 、預(yù)定義算法

1、取模算法

關(guān)鍵字段取模(對(duì)hash結(jié)果取余數(shù) hash(XXX) mod N),N為數(shù)據(jù)庫實(shí)例數(shù)或子表數(shù)量)是最為常見的一種路由方式。

以t_order訂單表為例,先給數(shù)據(jù)庫從 0 到 N-1進(jìn)行編號(hào),對(duì) t_order訂單表中order_no訂單編號(hào)字段進(jìn)行取模hash(order_no) mod N,得到余數(shù)i。i=0存第一個(gè)庫,i=1存第二個(gè)庫,i=2存第三個(gè)庫,以此類推。

3a40e442-6fe6-11ed-8abf-dac502259ad0.png

同一筆訂單數(shù)據(jù)會(huì)落在同一個(gè)庫、表里,查詢時(shí)用相同的規(guī)則,用t_order訂單編號(hào)作為查詢條件,就能快速的定位到數(shù)據(jù)。

優(yōu)點(diǎn)

實(shí)現(xiàn)簡單,數(shù)據(jù)分布相對(duì)比較均勻,不易出現(xiàn)請(qǐng)求都打到一個(gè)庫上的情況。

缺點(diǎn)

取模算法對(duì)集群的伸縮支持不太友好,集群中有N個(gè)數(shù)據(jù)庫實(shí)·hash(user_id) mod N,當(dāng)某一臺(tái)機(jī)器宕機(jī),本應(yīng)該落在該數(shù)據(jù)庫的請(qǐng)求就無法得到處理,這時(shí)宕掉的實(shí)例會(huì)被踢出集群。

此時(shí)機(jī)器數(shù)減少算法發(fā)生變化hash(user_id) mod N-1,同一用戶數(shù)據(jù)落在了在不同數(shù)據(jù)庫中,等這臺(tái)機(jī)器恢復(fù),用user_id作為條件查詢用戶數(shù)據(jù)就會(huì)少一部分。

2、范圍限定算法

范圍限定算法以某些范圍字段,如時(shí)間或ID區(qū)拆分。

用戶表t_user被拆分成t_user_1、t_user_2、t_user_3三張表,后續(xù)將user_id范圍為1 ~ 1000w的用戶數(shù)據(jù)放入t_user_1,1000~ 2000w放入t_user_2,2000~3000w放入t_user_3,以此類推。按日期范圍劃分同理。

3a5ecc96-6fe6-11ed-8abf-dac502259ad0.png

優(yōu)點(diǎn)

單表數(shù)據(jù)量是可控的

水平擴(kuò)展簡單只需增加節(jié)點(diǎn)即可,無需對(duì)其他分片的數(shù)據(jù)進(jìn)行遷移

缺點(diǎn)

由于連續(xù)分片可能存在數(shù)據(jù)熱點(diǎn),比如按時(shí)間字段分片時(shí),如果某一段時(shí)間(雙11等大促)訂單驟增,存11月數(shù)據(jù)的表可能會(huì)被頻繁的讀寫,其他分片表存儲(chǔ)的歷史數(shù)據(jù)則很少被查詢,導(dǎo)致數(shù)據(jù)傾斜,數(shù)據(jù)庫壓力分?jǐn)偛痪鶆颉?/p>

3、范圍 + 取模算法

為了避免熱點(diǎn)數(shù)據(jù)的問題,我們可以對(duì)上范圍算法優(yōu)化一下

這次我們先通過范圍算法定義每個(gè)庫的用戶表t_user只存1000w數(shù)據(jù),第一個(gè)db_order_1庫存放userId從1 ~ 1000w,第二個(gè)庫1000~2000w,第三個(gè)庫2000~3000w,以此類推。

3a72681e-6fe6-11ed-8abf-dac502259ad0.png

每個(gè)庫里再把用戶表t_user拆分成t_user_1、t_user_2、t_user_3等,對(duì)userd進(jìn)行取模路由到對(duì)應(yīng)的表中。

有效的避免數(shù)據(jù)分布不均勻的問題,數(shù)據(jù)庫水平擴(kuò)展也簡單,直接添加實(shí)例無需遷移歷史數(shù)據(jù)。

4、地理位置分片

地理位置分片其實(shí)是一個(gè)更大的范圍,按城市或者地域劃分,比如華東、華北數(shù)據(jù)放在不同的分片庫、表。

5、預(yù)定義算法

預(yù)定義算法是事先已經(jīng)明確知道分庫和分表的數(shù)量,可以直接將某類數(shù)據(jù)路由到指定庫或表中,查詢的時(shí)候亦是如此。

分庫分表出來的問題

了解了上邊分庫分表的拆分方式不難發(fā)現(xiàn),相比于拆分前的單庫單表,系統(tǒng)的數(shù)據(jù)存儲(chǔ)架構(gòu)演變到現(xiàn)在已經(jīng)變得非常復(fù)雜??磶讉€(gè)具有代表性的問題,比如:

分頁、排序、跨節(jié)點(diǎn)聯(lián)合查詢

分頁、排序、聯(lián)合查詢,這些看似普通,開發(fā)中使用頻率較高的操作,在分庫分表后卻是讓人非常頭疼的問題。把分散在不同庫中表的數(shù)據(jù)查詢出來,再將所有結(jié)果進(jìn)行匯總合并整理后提供給用戶。

比如:我們要查詢11、12月的訂單數(shù)據(jù),如果兩個(gè)月的數(shù)據(jù)是分散到了不同的數(shù)據(jù)庫實(shí)例,則要查詢兩個(gè)數(shù)據(jù)庫相關(guān)的數(shù)據(jù),在對(duì)數(shù)據(jù)合并排序、分頁,過程繁瑣復(fù)雜。

3a8c86cc-6fe6-11ed-8abf-dac502259ad0.png

事務(wù)一致性

分庫分表后由于表分布在不同庫中,不可避免會(huì)帶來跨庫事務(wù)問題。后續(xù)會(huì)分別以阿里的Seata和MySQL的XA協(xié)議實(shí)現(xiàn)分布式事務(wù),用來比較各自的優(yōu)勢(shì)與不足。

全局唯一的主鍵

分庫分表后數(shù)據(jù)庫表的主鍵ID業(yè)務(wù)意義就不大了,因?yàn)闊o法在標(biāo)識(shí)唯一一條記錄,例如:多張表t_order_1、t_order_2的主鍵ID全部從1開始會(huì)重復(fù),此時(shí)我們需要主動(dòng)為一條記錄分配一個(gè)ID,這個(gè)全局唯一的ID就叫分布式ID,發(fā)放這個(gè)ID的系統(tǒng)通常被叫發(fā)號(hào)器。

多數(shù)據(jù)庫高效治理

對(duì)多個(gè)數(shù)據(jù)庫以及庫內(nèi)大量分片表的高效治理,是非常有必要,因?yàn)橄衲硨氝@種大廠一次大促下來,訂單表可能會(huì)被拆分成成千上萬個(gè)t_order_n表,如果沒有高效的管理方案,手動(dòng)建表、排查問題是一件很恐怖的事。

歷史數(shù)據(jù)遷移

分庫分表架構(gòu)落地以后,首要的問題就是如何平滑的遷移歷史數(shù)據(jù),增量數(shù)據(jù)和全量數(shù)據(jù)遷移,這又是一個(gè)比較麻煩的事情,后邊詳細(xì)講。

分庫分表架構(gòu)模式

分庫分表架構(gòu)主要有兩種模式:client客戶端模式和proxy代理模式

客戶模式

client模式指分庫分表的邏輯都在你的系統(tǒng)應(yīng)用內(nèi)部進(jìn)行控制,應(yīng)用會(huì)將拆分后的SQL直連多個(gè)數(shù)據(jù)庫進(jìn)行操作,然后本地進(jìn)行數(shù)據(jù)的合并匯總等操作。

3aa639aa-6fe6-11ed-8abf-dac502259ad0.png

代理模式

proxy代理模式將應(yīng)用程序與MySQL數(shù)據(jù)庫隔離,業(yè)務(wù)方的應(yīng)用不在需要直連數(shù)據(jù)庫,而是連接proxy代理服務(wù),代理服務(wù)實(shí)現(xiàn)了MySQL的協(xié)議,對(duì)業(yè)務(wù)方來說代理服務(wù)就是數(shù)據(jù)庫,它會(huì)將SQL分發(fā)到具體的數(shù)據(jù)庫進(jìn)行執(zhí)行,并返回結(jié)果。該服務(wù)內(nèi)有分庫分表的配置,根據(jù)配置自動(dòng)創(chuàng)建分片表。

3ab6944e-6fe6-11ed-8abf-dac502259ad0.png

如何抉擇

如何選擇client模式和proxy模式,我們可以從以下幾個(gè)方面來簡單做下比較。

1、性能

性能方面client模式表現(xiàn)的稍好一些,它是直接連接MySQL執(zhí)行命令;proxy代理服務(wù)則將整個(gè)執(zhí)行鏈路延長了,應(yīng)用->代理服務(wù)->MySQL,可能導(dǎo)致性能有一些損耗,但兩者差距并不是非常大。

2、復(fù)雜度

client模式在開發(fā)使用通常引入一個(gè)jar可以;proxy代理模式則需要搭建單獨(dú)的服務(wù),有一定的維護(hù)成本,既然是服務(wù)那么就要考慮高可用,畢竟應(yīng)用的所有SQL都要通過它轉(zhuǎn)發(fā)至MySQL。

3、升級(jí)

client模式分庫分表一般是依賴基礎(chǔ)架構(gòu)團(tuán)隊(duì)的Jar包,一旦有版本升級(jí)或者Bug修改,所有應(yīng)用到的項(xiàng)目都要跟著升級(jí)。小規(guī)模的團(tuán)隊(duì)服務(wù)少升級(jí)問題不大,如果是大公司服務(wù)規(guī)模大,且涉及到跨多部門,那么升級(jí)一次成本就比較高;

proxy模式在升級(jí)方面優(yōu)勢(shì)很明顯,發(fā)布新功能或者修復(fù)Bug,只要重新部署代理服務(wù)集群即可,業(yè)務(wù)方是無感知的,但要保證發(fā)布過程中服務(wù)的可用性。

4、治理、監(jiān)控

client模式由于是內(nèi)嵌在應(yīng)用內(nèi),應(yīng)用集群部署不太方便統(tǒng)一處理;proxy模式在對(duì)SQL限流、讀寫權(quán)限控制、監(jiān)控、告警等服務(wù)治理方面更優(yōu)雅一些。







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10909

    瀏覽量

    213128
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    831

    瀏覽量

    26759

原文標(biāo)題:好好的系統(tǒng),為什么要分庫分表?

文章出處:【微信號(hào):OSC開源社區(qū),微信公眾號(hào):OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    數(shù)據(jù)庫分區(qū)、分庫

    今天先說說數(shù)據(jù)庫的數(shù)據(jù)分區(qū),分庫以及的內(nèi)容吧! 數(shù)據(jù)庫分區(qū)、分庫 數(shù)據(jù)庫分區(qū)、
    的頭像 發(fā)表于 09-30 11:24 ?2931次閱讀

    為什么要分庫?MySQL分庫實(shí)踐

    剛開始多數(shù)項(xiàng)目用單機(jī)數(shù)據(jù)庫就夠了,隨著服務(wù)器流量越來越大,面對(duì)的請(qǐng)求也越來越多,我們做了數(shù)據(jù)庫讀寫分離, 使用多個(gè)從庫副本(Slave)負(fù)責(zé)讀,使用主庫(Master)負(fù)責(zé)寫,master和slave通過主從復(fù)制實(shí)現(xiàn)數(shù)據(jù)同步更新,保持?jǐn)?shù)據(jù)一致。
    的頭像 發(fā)表于 11-25 17:47 ?1648次閱讀
    為什么要<b class='flag-5'>分庫</b><b class='flag-5'>分</b><b class='flag-5'>表</b>?MySQL<b class='flag-5'>分庫</b><b class='flag-5'>分</b><b class='flag-5'>表</b>實(shí)踐

    談分布式數(shù)據(jù)庫中間件之分庫   

      分庫,顧名思義就是把原本存儲(chǔ)于一個(gè)庫的數(shù)據(jù)分塊存儲(chǔ)到多個(gè)庫上,把原本存儲(chǔ)于一個(gè)的數(shù)據(jù)分塊存儲(chǔ)到多個(gè)上。那么關(guān)于
    發(fā)表于 08-02 20:19

    分庫是什么?怎么實(shí)現(xiàn)?

    數(shù)據(jù)庫分庫、讀寫分離的原理實(shí)現(xiàn),使用場(chǎng)景
    發(fā)表于 10-25 17:24

    利用Mycat實(shí)現(xiàn)MySQL讀寫分離、分庫最佳實(shí)踐

    利用Mycat實(shí)現(xiàn)MySQL讀寫分離、分庫最佳實(shí)踐
    發(fā)表于 09-08 10:20 ?14次下載
    利用Mycat實(shí)現(xiàn)MySQL讀寫分離、<b class='flag-5'>分庫</b><b class='flag-5'>分</b><b class='flag-5'>表</b>最佳實(shí)踐

    結(jié)合實(shí)踐對(duì)水平分庫做一個(gè)系統(tǒng)地剖析

    隨著大型互聯(lián)網(wǎng)應(yīng)用的發(fā)展,海量數(shù)據(jù)的存儲(chǔ)和訪問成為系統(tǒng)設(shè)計(jì)的瓶頸,分布式處理成為不二選擇。數(shù)據(jù)庫拆分,特別是水平分庫是個(gè)高難度的活,涉及一系列技術(shù)決策。 本人有幸負(fù)責(zé)1號(hào)店訂單水平分庫的方案設(shè)計(jì)
    發(fā)表于 10-11 17:46 ?0次下載
    結(jié)合實(shí)踐對(duì)水平<b class='flag-5'>分庫</b>做一個(gè)系統(tǒng)地剖析

    數(shù)據(jù)庫分庫基礎(chǔ)和實(shí)踐

    問題?  一般情況下,列表分頁時(shí)需要按照指定字段進(jìn)行排序。在單庫單情況下,分頁和排序也是非常容易的。但是,隨著分庫
    發(fā)表于 09-05 16:40 ?269次閱讀

    數(shù)據(jù)庫瓶頸及分庫表示例

    就可以想象了吧(并發(fā)量、吞吐量、崩潰)。 1、IO瓶頸 第一種:磁盤讀IO瓶頸,熱點(diǎn)數(shù)據(jù)太多,數(shù)據(jù)庫緩存放不下,每次查詢時(shí)會(huì)產(chǎn)生大量的IO,降低查詢速度 -分庫和垂直。 第二種:網(wǎng)絡(luò)IO瓶頸,請(qǐng)求的數(shù)據(jù)太多,網(wǎng)絡(luò)帶寬不夠 -
    的頭像 發(fā)表于 09-24 15:52 ?1973次閱讀
    數(shù)據(jù)庫瓶頸及<b class='flag-5'>分庫</b><b class='flag-5'>分</b>表示例

    你們知道為什么要分庫

    在文章開頭先拋幾個(gè)問題: (1)什么時(shí)候才需要分庫?我們的評(píng)判標(biāo)準(zhǔn)是什么? (2)一張存儲(chǔ)了多少數(shù)據(jù)的時(shí)候,才需要考慮
    的頭像 發(fā)表于 08-16 10:37 ?1574次閱讀

    優(yōu)化MySQL數(shù)據(jù)庫中樸實(shí)無華的和花里胡哨的分庫

    blog.csdn.net/qq_39390545/article/details/116248222 一、樸實(shí)無華的 - 1、垂直 2、水平分
    的頭像 發(fā)表于 08-26 16:33 ?1296次閱讀

    你是否知道分庫需要哪些要素?

    分庫會(huì)重新影響數(shù)據(jù)的分布,無論是全量還是增量,都會(huì)涉及到數(shù)據(jù)遷移,所以Databus是必要的。
    的頭像 發(fā)表于 10-12 10:39 ?831次閱讀

    分庫的21條法則速來碼住(上)

    還是不著急實(shí)戰(zhàn),咱們先介紹下在分庫架構(gòu)實(shí)施過程中,會(huì)接觸到的一些通用概念,了解這些概念能夠幫助理解市面上其他的分庫表工具,盡管它們的實(shí)
    的頭像 發(fā)表于 05-26 17:33 ?600次閱讀
    <b class='flag-5'>分庫</b><b class='flag-5'>分</b><b class='flag-5'>表</b>的21條法則速來碼?。ㄉ希? />    </a>
</div>                            <div   id=

    分庫的21條法則速來碼住(

    還是不著急實(shí)戰(zhàn),咱們先介紹下在分庫架構(gòu)實(shí)施過程中,會(huì)接觸到的一些通用概念,了解這些概念能夠幫助理解市面上其他的分庫表工具,盡管它們的實(shí)
    的頭像 發(fā)表于 05-26 17:33 ?679次閱讀
    <b class='flag-5'>分庫</b><b class='flag-5'>分</b><b class='flag-5'>表</b>的21條法則速來碼?。?b class='flag-5'>下</b>)

    分庫后復(fù)雜查詢的應(yīng)對(duì)之道:基于DTS實(shí)時(shí)性ES寬構(gòu)建技術(shù)實(shí)踐

    ,通過分庫應(yīng)對(duì)存系統(tǒng)讀寫性能瓶頸和存儲(chǔ)瓶頸;分庫
    的頭像 發(fā)表于 06-25 18:30 ?917次閱讀
    <b class='flag-5'>分庫</b><b class='flag-5'>分</b><b class='flag-5'>表</b>后復(fù)雜查詢的應(yīng)對(duì)之道:基于DTS實(shí)時(shí)性ES寬<b class='flag-5'>表</b>構(gòu)建技術(shù)實(shí)踐

    軟件系統(tǒng)數(shù)據(jù)庫的分庫設(shè)計(jì)

    軟件系統(tǒng)數(shù)據(jù)庫的分庫設(shè)計(jì) 系統(tǒng)讀寫分離、分庫技術(shù)實(shí)現(xiàn)采用MyCat中間件,MyCat 是
    的頭像 發(fā)表于 08-22 11:39 ?373次閱讀
    軟件系統(tǒng)數(shù)據(jù)庫的<b class='flag-5'>分庫</b><b class='flag-5'>分</b><b class='flag-5'>表</b>設(shè)計(jì)