国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
數(shù)據(jù)庫分區(qū)、分表、分庫、分片

一、分區(qū)的概念

        數(shù)據(jù)分區(qū)是一種物理數(shù)據(jù)庫的設(shè)計(jì)技術(shù),它的目的是為了在特定的SQL操作中減少數(shù)據(jù)讀寫的總量以縮減響應(yīng)時(shí)間。

        分區(qū)并不是生成新的數(shù)據(jù)表,而是將表的數(shù)據(jù)均衡分?jǐn)偟讲煌挠脖P,系統(tǒng)或是不同服務(wù)器存儲(chǔ)介子中,實(shí)際上還是一張表。另外,分區(qū)可以做到將表的數(shù)據(jù)均衡到不同的地方,提高數(shù)據(jù)檢索的效率,降低數(shù)據(jù)庫的頻繁IO壓力值,分區(qū)的優(yōu)點(diǎn)如下:

1、相對(duì)于單個(gè)文件系統(tǒng)或是硬盤,分區(qū)可以存儲(chǔ)更多的數(shù)據(jù);

2、數(shù)據(jù)管理比較方便,比如要清理或廢棄某年的數(shù)據(jù),就可以直接刪除該日期的分區(qū)數(shù)據(jù)即可;

3、精準(zhǔn)定位分區(qū)查詢數(shù)據(jù),不需要全表掃描查詢,大大提高數(shù)據(jù)檢索效率;

4、可跨多個(gè)分區(qū)磁盤查詢,來提高查詢的吞吐量;

5、在涉及聚合函數(shù)查詢時(shí),可以很容易進(jìn)行數(shù)據(jù)的合并;

二、分類 (row 行 ,column 列)

1、水平分區(qū)

這種形式分區(qū)是對(duì)表的行進(jìn)行分區(qū),通過這樣的方式不同分組里面的物理列分割的數(shù)據(jù)集得以組合,從而進(jìn)行個(gè)體分割(單分區(qū))或集體分割(1個(gè)或多個(gè)分區(qū))。所有在表中定義的列在每個(gè)數(shù)據(jù)集中都能找到,所以表的特性依然得以保持。
舉個(gè)簡單例子:一個(gè)包含十年發(fā)票記錄的表可以被分區(qū)為十個(gè)不同的分區(qū),每個(gè)分區(qū)包含的是其中一年的記錄。(朋奕注:這里具體使用的分區(qū)方式我們后面再說,可以先說一點(diǎn),一定要通過某個(gè)屬性列來分割,譬如這里使用的列就是年份)

2、垂直分區(qū)

這種分區(qū)方式一般來說是通過對(duì)表的垂直劃分來減少目標(biāo)表的寬度,使某些特定的列被劃分到特定的分區(qū),每個(gè)分區(qū)都包含了其中的列所對(duì)應(yīng)的行。
舉個(gè)簡單例子:一個(gè)包含了大text和BLOB列的表,這些text和BLOB列又不經(jīng)常被訪問,這時(shí)候就要把這些不經(jīng)常使用的text和BLOB了劃分到另一個(gè)分區(qū),在保證它們數(shù)據(jù)相關(guān)性的同時(shí)還能提高訪問速度。
在數(shù)據(jù)庫供應(yīng)商開始在他們的數(shù)據(jù)庫引擎中建立分區(qū)(主要是水平分區(qū))時(shí),DBA和建模者必須設(shè)計(jì)好表的物理分區(qū)結(jié)構(gòu),不要保存冗余的數(shù)據(jù)(不同表中同時(shí)都包含父表中的數(shù)據(jù))或相互聯(lián)結(jié)成一個(gè)邏輯父對(duì)象(通常是視圖)。這種做法會(huì)使水平分區(qū)的大部分功能失效,有時(shí)候也會(huì)對(duì)垂直分區(qū)產(chǎn)生影響。

三、分區(qū)、分表、分庫的詳細(xì)理解

一、什么是分區(qū)、分表、分庫

分區(qū)

就是把一張表的數(shù)據(jù)分成N個(gè)區(qū)塊,在邏輯上看最終只是一張表,但底層是由N個(gè)物理區(qū)塊組成的

分表

就是把一張表按一定的規(guī)則分解成N個(gè)具有獨(dú)立存儲(chǔ)空間的實(shí)體表。系統(tǒng)讀寫時(shí)需要根據(jù)定義好的規(guī)則得到對(duì)應(yīng)的字表明,然后操作它。

分庫

一旦分表,一個(gè)庫中的表會(huì)越來越多

將整個(gè)數(shù)據(jù)庫比作圖書館,一張表就是一本書。當(dāng)要在一本書中查找某項(xiàng)內(nèi)容時(shí),如果不分章節(jié),查找的效率將會(huì)下降。而同理,在數(shù)據(jù)庫中就是分區(qū)。

二、常用的單機(jī)數(shù)據(jù)庫的瓶頸

問題描述

  • 單個(gè)表數(shù)據(jù)量越大,讀寫鎖,插入操作重新建立索引效率越低。

  • 單個(gè)庫數(shù)據(jù)量太大(一個(gè)數(shù)據(jù)庫數(shù)據(jù)量到1T-2T就是極限)

  • 單個(gè)數(shù)據(jù)庫服務(wù)器壓力過大

  • 讀寫速度遇到瓶頸(并發(fā)量幾百)

三、分區(qū)

什么時(shí)候考慮使用分區(qū)?

  • 一張表的查詢速度已經(jīng)慢到影響使用的時(shí)候。

  • sql經(jīng)過優(yōu)化

  • 數(shù)據(jù)量大

  • 表中的數(shù)據(jù)是分段的

  • 對(duì)數(shù)據(jù)的操作往往只涉及一部分?jǐn)?shù)據(jù),而不是所有的數(shù)據(jù)

分區(qū)解決的問題

主要可以提升查詢效率

分區(qū)的實(shí)現(xiàn)方式(簡單)

mysql5 開始支持分區(qū)功能

  1. CREATE TABLE sales (
  2. id INT AUTO_INCREMENT,
  3. amount DOUBLE NOT NULL,
  4. order_day DATETIME NOT NULL,
  5. PRIMARY KEY(id, order_day)
  6. ) ENGINE=Innodb
  7. PARTITION BY RANGE(YEAR(order_day)) (
  8. PARTITION p_2010 VALUES LESS THAN (2010),
  9. PARTITION p_2011 VALUES LESS THAN (2011),
  10. PARTITION p_2012 VALUES LESS THAN (2012),
  11. PARTITION p_catchall VALUES LESS THAN MAXVALUE);

四、分表

什么時(shí)候考慮分表?

  • 一張表的查詢速度已經(jīng)慢到影響使用的時(shí)候。

  • sql經(jīng)過優(yōu)化

  • 數(shù)據(jù)量大

  • 當(dāng)頻繁插入或者聯(lián)合查詢時(shí),速度變慢

分表解決的問題

分表后,單表的并發(fā)能力提高了,磁盤I/O性能也提高了,寫操作效率提高了

  • 查詢一次的時(shí)間短了

  • 數(shù)據(jù)分布在不同的文件,磁盤I/O性能提高

  • 讀寫鎖影響的數(shù)據(jù)量變小

  • 插入數(shù)據(jù)庫需要重新建立索引的數(shù)據(jù)減少

分表的實(shí)現(xiàn)方式(復(fù)雜)

需要業(yè)務(wù)系統(tǒng)配合遷移升級(jí),工作量較大

分區(qū)和分表的區(qū)別與聯(lián)系

  • 分區(qū)和分表的目的都是減少數(shù)據(jù)庫的負(fù)擔(dān),提高表的增刪改查效率。

  • 分區(qū)只是一張表中的數(shù)據(jù)的存儲(chǔ)位置發(fā)生改變,分表是將一張表分成多張表。

  • 當(dāng)訪問量大,且表數(shù)據(jù)比較大時(shí),兩種方式可以互相配合使用。

  • 當(dāng)訪問量不大,但表數(shù)據(jù)比較多時(shí),可以只進(jìn)行分區(qū)。

常見分區(qū)分表的規(guī)則策略(類似)

  1. Range(范圍)

  2. Hash(哈希)

  3. 按照時(shí)間拆分

  4. Hash之后按照分表個(gè)數(shù)取模

  5. 在認(rèn)證庫中保存數(shù)據(jù)庫配置,就是建立一個(gè)DB,這個(gè)DB單獨(dú)保存user_id到DB的映射關(guān)系

12306的訂單是如何存儲(chǔ)的?

五、分庫

什么時(shí)候考慮使用分庫?

  • 單臺(tái)DB的存儲(chǔ)空間不夠

  • 隨著查詢量的增加單臺(tái)數(shù)據(jù)庫服務(wù)器已經(jīng)沒辦法支撐

分庫解決的問題

其主要目的是為突破單節(jié)點(diǎn)數(shù)據(jù)庫服務(wù)器的 I/O 能力限制,解決數(shù)據(jù)庫擴(kuò)展性問題。 

垂直拆分

將系統(tǒng)中不存在關(guān)聯(lián)關(guān)系或者需要join的表可以放在不同的數(shù)據(jù)庫不同的服務(wù)器中。

按照業(yè)務(wù)垂直劃分。比如:可以按照業(yè)務(wù)分為資金、會(huì)員、訂單三個(gè)數(shù)據(jù)庫。

需要解決的問題:跨數(shù)據(jù)庫的事務(wù)、jion查詢等問題。

水平拆分

例如,大部分的站點(diǎn)。數(shù)據(jù)都是和用戶有關(guān),那么可以根據(jù)用戶,將數(shù)據(jù)按照用戶水平拆分。

按照規(guī)則劃分,一般水平分庫是在垂直分庫之后的。比如每天處理的訂單數(shù)量是海量的,可以按照一定的規(guī)則水平劃分。需要解決的問題:數(shù)據(jù)路由、組裝。

讀寫分離

對(duì)于時(shí)效性不高的數(shù)據(jù),可以通過讀寫分離緩解數(shù)據(jù)庫壓力。需要解決的問題:在業(yè)務(wù)上區(qū)分哪些業(yè)務(wù)上是允許一定時(shí)間延遲的,以及數(shù)據(jù)同步問題。

思路

垂直分庫-->水平分庫-->讀寫分離

六、拆分之后面臨新的問題

問題

  • 事務(wù)的支持,分庫分表,就變成了分布式事務(wù)

  • join時(shí)跨庫,跨表的問題

  • 分庫分表,讀寫分離使用了分布式,分布式為了保證強(qiáng)一致性,必然帶來延遲,導(dǎo)致性能降低,系統(tǒng)的復(fù)雜度變高。

常用的解決方案:

對(duì)于不同的方式之間沒有嚴(yán)格的界限,特點(diǎn)不同,側(cè)重點(diǎn)不同。需要根據(jù)實(shí)際情況,結(jié)合每種方式的特點(diǎn)來進(jìn)行處理。

選用第三方的數(shù)據(jù)庫中間件(Atlas,Mycat,TDDL,DRDS),同時(shí)業(yè)務(wù)系統(tǒng)需要配合數(shù)據(jù)存儲(chǔ)的升級(jí)。

七、數(shù)據(jù)存儲(chǔ)的演進(jìn)

單庫單表

單庫單表是最常見的數(shù)據(jù)庫設(shè)計(jì),例如,有一張用戶(user)表放在數(shù)據(jù)庫db中,所有的用戶都可以在db庫中的user表中查到。

單庫多表

隨著用戶數(shù)量的增加,user表的數(shù)據(jù)量會(huì)越來越大,當(dāng)數(shù)據(jù)量達(dá)到一定程度的時(shí)候?qū)ser表的查詢會(huì)漸漸的變慢,從而影響整個(gè)DB的性能。如果使用mysql, 還有一個(gè)更嚴(yán)重的問題是,當(dāng)需要添加一列的時(shí)候,mysql會(huì)鎖表,期間所有的讀寫操作只能等待。

可以通過某種方式將user進(jìn)行水平的切分,產(chǎn)生兩個(gè)表結(jié)構(gòu)完全一樣的user_0000,user_0001等表,user_0000 + user_0001 + …的數(shù)據(jù)剛好是一份完整的數(shù)據(jù)。

多庫多表

隨著數(shù)據(jù)量增加也許單臺(tái)DB的存儲(chǔ)空間不夠,隨著查詢量的增加單臺(tái)數(shù)據(jù)庫服務(wù)器已經(jīng)沒辦法支撐。這個(gè)時(shí)候可以再對(duì)數(shù)據(jù)庫進(jìn)行水平拆分。

八、總結(jié)

總的來說,優(yōu)先考慮分區(qū)。當(dāng)分區(qū)不能滿足需求時(shí),開始考慮分表,合理的分表對(duì)效率的提升會(huì)優(yōu)于分區(qū)。

九、案例分析

京東的商品評(píng)價(jià)存儲(chǔ)設(shè)計(jì),原文地址

現(xiàn)狀

  • 商品的評(píng)論數(shù)量:數(shù)十億條

  • 每天的服務(wù)調(diào)用:數(shù)十億次

  • 每年成倍增長

整體的數(shù)據(jù)存儲(chǔ):基礎(chǔ)數(shù)據(jù)存儲(chǔ),文本存儲(chǔ)

基礎(chǔ)數(shù)據(jù)存儲(chǔ)

Mysql:只存儲(chǔ)非文本的基礎(chǔ)信息。包括:評(píng)論狀態(tài),用戶,時(shí)間等基礎(chǔ)數(shù)據(jù)。以及圖片,標(biāo)簽,點(diǎn)贊等附加信息。數(shù)據(jù)組織形式(不同的數(shù)據(jù)又可選擇不同的庫表拆分方案):

  • 評(píng)論基礎(chǔ)數(shù)據(jù)按用戶ID進(jìn)行拆庫并拆表

  • 圖片及標(biāo)簽處于同一數(shù)據(jù)庫下,根據(jù)商品編號(hào)分別進(jìn)行拆表

  • 其它的擴(kuò)展信息數(shù)據(jù),因數(shù)據(jù)量不大、訪問量不高,處理于同一庫下且不做分表即可

文本存儲(chǔ)

文本存儲(chǔ)(評(píng)論的內(nèi)容)使用了mongodb、hbase

  • 選擇nosql而非mysql

  • 減輕了mysql存儲(chǔ)壓力,釋放msyql,龐大的存儲(chǔ)也有了可靠的保障

  • nosql的高性能讀寫大大提升了系統(tǒng)的吞吐量并降低了延遲

轉(zhuǎn)自:http://www.cnblogs.com/bluebluesky/articles/6413831.html

作者:bluebluesky

也可參考:https://blog.csdn.net/kingcat666/article/details/78324678

里面會(huì)有詳細(xì)的說明??!我就不轉(zhuǎn)載了?。?/p>

數(shù)據(jù)分片

在分布式存儲(chǔ)系統(tǒng)中,數(shù)據(jù)需要分散存儲(chǔ)在多臺(tái)設(shè)備上,數(shù)據(jù)分片(Sharding)就是用來確定數(shù)據(jù)在多臺(tái)存儲(chǔ)設(shè)備上分布的技術(shù)。數(shù)據(jù)分片要達(dá)到三個(gè)目的:

  1. 分布均勻,即每臺(tái)設(shè)備上的數(shù)據(jù)量要盡可能相近;
  2. 負(fù)載均衡,即每臺(tái)設(shè)備上的請(qǐng)求量要盡可能相近;
  3. 擴(kuò)縮容時(shí)產(chǎn)生的數(shù)據(jù)遷移盡可能少。

數(shù)據(jù)分片方法

數(shù)據(jù)分片一般都是使用Key或Key的哈希值來計(jì)算Key的分布,常見的幾種數(shù)據(jù)分片的方法如下:

  1. 劃分號(hào)段。這種一般適用于Key為整型的情況,每臺(tái)設(shè)備上存放相同大小的號(hào)段區(qū)間,如把Key為[1, 10000]的數(shù)據(jù)放在第一臺(tái)設(shè)備上,把Key為[10001, 20000]的數(shù)據(jù)放在第二臺(tái)設(shè)備上,依次類推。這種方法實(shí)現(xiàn)很簡單,擴(kuò)容也比較方便,成倍增加設(shè)備即可,如原來有N臺(tái)設(shè)備,再新增N臺(tái)設(shè)備來擴(kuò)容,把每臺(tái)老設(shè)備上一半的數(shù)據(jù)遷移到新設(shè)備上,原來號(hào)段為[1, 10000]的設(shè)備,擴(kuò)容后只保留號(hào)段[1, 5000]的數(shù)據(jù),把號(hào)段為[5001, 10000]的數(shù)據(jù)遷移到一臺(tái)新增的設(shè)備上。此方法的缺點(diǎn)是數(shù)據(jù)可能分布不均勻,如小號(hào)段數(shù)據(jù)量可能比大號(hào)段的數(shù)據(jù)量要大,同樣的各個(gè)號(hào)段的熱度也可能不一樣,導(dǎo)致各個(gè)設(shè)備的負(fù)載不均衡;并且擴(kuò)容也不夠靈活,只能成倍地增加設(shè)備。
  2. 取模。這種方法先計(jì)算Key的哈希值,再對(duì)設(shè)備數(shù)量取模(整型的Key也可直接用Key取模),假設(shè)有N臺(tái)設(shè)備,編號(hào)為0~N-1,通過Hash(Key)%N就可以確定數(shù)據(jù)所在的設(shè)備編號(hào)。這種方法實(shí)現(xiàn)也非常簡單,數(shù)據(jù)分布和負(fù)載也會(huì)比較均勻,可以新增任何數(shù)量的設(shè)備來擴(kuò)容。主要的問題是擴(kuò)容的時(shí)候,會(huì)產(chǎn)生大量的數(shù)據(jù)遷移,比如從N臺(tái)設(shè)備擴(kuò)容到N+1臺(tái),絕大部分的數(shù)據(jù)都要在設(shè)備間進(jìn)行遷移。
  3. 檢索表。在檢索表中存儲(chǔ)Key和設(shè)備的映射關(guān)系,通過查找檢索表就可以確定數(shù)據(jù)分布,這里的檢索表也可以比較靈活,可以對(duì)每個(gè)Key都存儲(chǔ)映射關(guān)系,也可結(jié)合號(hào)段劃分等方法來減小檢索表的容量。這樣可以做到數(shù)據(jù)均勻分布、負(fù)載均衡和擴(kuò)縮容數(shù)據(jù)遷移量少。缺點(diǎn)是需要存儲(chǔ)檢索表的空間可能比較大,并且為了保證擴(kuò)縮容引起的數(shù)據(jù)遷移量比較少,確定映射關(guān)系的算法也比較復(fù)雜。
  4. 一致性哈希。一致性哈希算法(Consistent Hashing)在1997年由麻省理工學(xué)院提出的一種分布式哈希(DHT)實(shí)現(xiàn)算法,設(shè)計(jì)目標(biāo)是為了解決因特網(wǎng)中的熱點(diǎn)(Hot Spot)問題,該方法的詳細(xì)介紹參考此處http://blog.csdn.net/sparkliang/article/details/5279393。一致性哈希的算法簡單而巧妙,很容易做到數(shù)據(jù)均分布,其單調(diào)性也保證了擴(kuò)縮容的數(shù)據(jù)遷移是比較少的。

通過上面的對(duì)比,在這個(gè)系統(tǒng)選擇一致性哈希的方法來進(jìn)行數(shù)據(jù)分片。

虛擬服務(wù)器

為了讓系統(tǒng)有更好的擴(kuò)展性,這里提出存儲(chǔ)層VServer(虛擬服務(wù)器)的概念,一個(gè)VServer是一個(gè)邏輯上的存儲(chǔ)服務(wù)器,是分布式存儲(chǔ)系統(tǒng)的一個(gè)存儲(chǔ)單元,一臺(tái)物理設(shè)備上可以部署多個(gè)VServer,一個(gè)VServer支持一個(gè)寫進(jìn)程和多個(gè)讀進(jìn)程。

通過VServer的方式,會(huì)有下面一些好處:

  1. 提高單機(jī)性能。為了不引入復(fù)雜的鎖機(jī)制,采用了單寫進(jìn)程的設(shè)計(jì),如果單機(jī)只有一個(gè)寫進(jìn)程,寫并發(fā)能力會(huì)受到限制,通過VServer方式把單機(jī)上的存儲(chǔ)資源(內(nèi)存、硬盤)劃分為多個(gè)存儲(chǔ)單元,這樣就支持多個(gè)寫進(jìn)程同時(shí)工作,大大提升單機(jī)寫并發(fā)能力。
  2. 部署擴(kuò)展性更好。VServer的方式在部署上非常靈活,可以根據(jù)單機(jī)的資源情況來確定VServer的數(shù)量,針對(duì)不同的機(jī)型配置不同的VServer數(shù)量,這樣不同的機(jī)型都能充分利用機(jī)器上的資源,即使在一個(gè)系統(tǒng)中使用多種機(jī)型,也能做到機(jī)器的負(fù)載比較均衡。

一致性哈希的應(yīng)用

數(shù)據(jù)分片是在接口層實(shí)現(xiàn)的,目的是把數(shù)據(jù)均勻地劃分到不同的VServer上。有了接口層的存在,邏輯層尋址就輕量了很多,尋址存儲(chǔ)層VServer的工作全部由接口層負(fù)責(zé),邏輯層只需要隨機(jī)選一個(gè)接口層機(jī)器訪問即可。

接口層使用了一致性哈希的割環(huán)算法來實(shí)現(xiàn)數(shù)據(jù)分片,在割環(huán)算法中,為了讓數(shù)據(jù)均勻分布到各個(gè)VServer,每個(gè)VServer需要有多個(gè)VNode(虛擬節(jié)點(diǎn))。一個(gè)Key尋址的過程如下圖所示,首先根據(jù)Hash(Key)在哈希環(huán)上找到對(duì)應(yīng)的VNode,在根據(jù)VNode和VServer的映射表確定所屬的VServer。

由上述查找過程可知,需要事先離線計(jì)算出VNode在哈希環(huán)上的分布、VServer和VNode映射關(guān)系。為了是計(jì)算結(jié)果具有通用性,即在擁有任何數(shù)量VServer的一個(gè)系統(tǒng)都可以使用該結(jié)果得到一致性哈希的映射表,這就要求結(jié)果是與機(jī)器無關(guān)的,比如不能使用IP來計(jì)算VNode的哈希值。在計(jì)算前需要確定每個(gè)VServer包含的VNode數(shù)量,以及一個(gè)系統(tǒng)所支持的最大VServer數(shù)量。一個(gè)簡單的方法是類似上文鏈接中提到的方法,但不能和IP相關(guān),可以改用VServer和VNode的編號(hào)來計(jì)算哈希值,如Hash("1#1"),Hash("1#2")… 這種方法要求一個(gè)VServer包含的VNode的數(shù)量比較多,大概需要500個(gè)才能使各個(gè)VServer上的數(shù)據(jù)比較均勻。當(dāng)然還有其他的一些方法做到一個(gè)VServer上包含更少的VNode數(shù)量,并且讓數(shù)據(jù)分布偏差在一定范圍內(nèi)。

Google提出了一種新的一致性哈希算法Jump Consistent Hash,此算法零內(nèi)存消耗,均勻分配,快速,并且只有5行代碼,優(yōu)勢非常明顯,詳細(xì)介紹見此處http://my.oschina.net/u/658658/blog/424161。和上面介紹的方法相比,一個(gè)最大的不同點(diǎn)是,在擴(kuò)容重新分布數(shù)據(jù)時(shí),在上面的方法中,新機(jī)器的一個(gè)VNode上的數(shù)據(jù)只會(huì)來自一個(gè)老機(jī)器上的VNode,而這種方法是會(huì)來自所有老機(jī)器上的VNode。這個(gè)問題可能會(huì)導(dǎo)致一些設(shè)計(jì)上復(fù)雜化,所以使用的時(shí)候要慎重考慮。

轉(zhuǎn):http://www.cnblogs.com/Leo_wl/p/5654789.html

分片模式是什么?

數(shù)據(jù)的切分(Sharding)根據(jù)其切分規(guī)則的類型,可以分為兩種切分模式。

(1)一種是按照不同的表(或者Schema)來切分到不同的數(shù)據(jù)庫(主機(jī))之上,這種切分可以稱之為數(shù)據(jù)的垂直(縱向)切分 

(2)另外一種則是根據(jù)表中的數(shù)據(jù)的邏輯關(guān)系,將同一個(gè)表中的數(shù)據(jù)按照某種條件拆分到多臺(tái)數(shù)據(jù)庫(主機(jī))上面,這種切分稱之為數(shù)據(jù)的水平(橫向)切分。

分片相關(guān)的概念

邏輯庫(schema) :

通常對(duì)實(shí)際應(yīng)用來說,并不需要知道中間件的存在,業(yè)務(wù)開發(fā)人員只需要知道數(shù)據(jù)庫的概念,所以數(shù)據(jù)庫中間件可以被看做是一個(gè)或多個(gè)數(shù)據(jù)庫集群構(gòu)成的邏輯庫。

  • 邏輯表(table):

既然有邏輯庫,那么就會(huì)有邏輯表,分布式數(shù)據(jù)庫中,對(duì)應(yīng)用來說,讀寫數(shù)據(jù)的表就是邏輯表。邏輯表,可以是數(shù)據(jù)切分后,分布在一個(gè)或多個(gè)分片庫中,也可以不做數(shù)據(jù)切分,不分片,只有一個(gè)表構(gòu)成。

  • 分片表:

是指那些原有的很大數(shù)據(jù)的表,需要切分到多個(gè)數(shù)據(jù)庫的表,這樣,每個(gè)分片都有一部分?jǐn)?shù)據(jù),所有分片構(gòu)成了完整的數(shù)據(jù)。 總而言之就是需要進(jìn)行分片的表。

  • 非分片表:

一個(gè)數(shù)據(jù)庫中并不是所有的表都很大,某些表是可以不用進(jìn)行切分的,非分片是相對(duì)分片表來說的,就是那些不需要進(jìn)行數(shù)據(jù)切分的表。

  • 分片節(jié)點(diǎn)(dataNode)

數(shù)據(jù)切分后,一個(gè)大表被分到不同的分片數(shù)據(jù)庫上面,每個(gè)表分片所在的數(shù)據(jù)庫就是分片節(jié)點(diǎn)(dataNode)。

  • 節(jié)點(diǎn)主機(jī)(dataHost)

數(shù)據(jù)切分后,每個(gè)分片節(jié)點(diǎn)(dataNode)不一定都會(huì)獨(dú)占一臺(tái)機(jī)器,同一機(jī)器上面可以有多個(gè)分片數(shù)據(jù)庫,這樣一個(gè)或多個(gè)分片節(jié)點(diǎn)(dataNode)所在的機(jī)器就是節(jié)點(diǎn)主機(jī)(dataHost),為了規(guī)避單節(jié)點(diǎn)主機(jī)并發(fā)數(shù)限制,盡量將讀寫壓力高的分片節(jié)點(diǎn)(dataNode)均衡的放在不同的節(jié)點(diǎn)主機(jī)(dataHost)。

  • 分片規(guī)則(rule)

前面講了數(shù)據(jù)切分,一個(gè)大表被分成若干個(gè)分片表,就需要一定的規(guī)則,這樣按照某種業(yè)務(wù)規(guī)則把數(shù)據(jù)分到某個(gè)分片的規(guī)則就是分片規(guī)則,數(shù)據(jù)切分選擇合適的分片規(guī)則非常重要,將極大的避免后續(xù)數(shù)據(jù)處理的難度。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
MySQL高級(jí)部分理論知識(shí)細(xì)講
為什么需要分庫分表
MySQL 深入學(xué)習(xí)總結(jié)
數(shù)據(jù)庫優(yōu)化8大通用絕招 ! 你知道幾個(gè)?
數(shù)據(jù)庫分區(qū)是什么?
MySQL 分區(qū)、分表、分庫
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服