佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 數(shù)據(jù)庫分庫分表是什么,什么情況下需要用分庫分表

數(shù)據(jù)庫分庫分表是什么,什么情況下需要用分庫分表

熱門標(biāo)簽:Linux服務(wù)器 百度競價排名 呼叫中心市場需求 網(wǎng)站排名優(yōu)化 地方門戶網(wǎng)站 鐵路電話系統(tǒng) AI電銷 服務(wù)外包

數(shù)據(jù)量在什么情況下需要分表?

為了保證數(shù)據(jù)庫的查詢效率,當(dāng)數(shù)據(jù)達(dá)成一定量時建議進(jìn)行分表操作

1、oracle

當(dāng)oracle單表的數(shù)據(jù)量大于2000萬行時,建議進(jìn)行水平分拆。

2、mysql

當(dāng)mysql單表的數(shù)據(jù)量大于1000萬行時,建議進(jìn)行水平分拆。

單表容量到了1000W以上基本上稍微復(fù)雜一點的SQL都需要仔細(xì)優(yōu)化,這時候的SQL耗時主要集中在磁盤IO上,數(shù)據(jù)命令緩存的概率降低,總之不好搞,如果是正常的互聯(lián)網(wǎng)項目,提前分庫分表,在前期能做的先做了,后面會省很多時間處理數(shù)據(jù)遷移的事情,數(shù)據(jù)操作比較頻繁,比如訂單表,可能涉及到的插入和更新操作特別頻繁,特別是大并發(fā)的時候,這時如果只用一個庫,對磁盤的IO和mysql的性能都是一種考驗,所以要分庫分表,把操作頻繁的表和基本信息表分開處理,減小單個數(shù)據(jù)庫的壓力,同時也不影響其他基本信息的讀寫

如果只有一臺服務(wù)器,當(dāng)select很多時,update和delete會被這些select訪問中的數(shù)據(jù)堵塞,等待select結(jié)束,并發(fā)性能不高,此時就要選擇讀寫分離了,主 庫 負(fù) 責(zé) 寫 , 從 庫 負(fù) 責(zé) 讀 \color{#FF0000}{主庫負(fù)責(zé)寫,從庫負(fù)責(zé)讀}主庫負(fù)責(zé)寫,從庫負(fù)責(zé)讀

具體情況根據(jù)數(shù)據(jù)庫服務(wù)器的配置和架構(gòu)有關(guān),僅供參考

3、sqlserver

sqlserver一般如下條件就可以選擇分區(qū)分表操作了

1、表的大小超過2GB。
2、表中包含歷史數(shù)據(jù),新的數(shù)據(jù)被增加都新的分區(qū)中。

當(dāng)一個數(shù)據(jù)表的數(shù)據(jù)量達(dá)到千萬級別以后,每次查詢都需要消耗大量的時間,所以當(dāng)表數(shù)據(jù)量達(dá)到一定量級后我們需要對數(shù)據(jù)表水平切割。水平分區(qū)分表就是把邏輯上的一個表,在物理上按照你指定的規(guī)則分放到不同的文件里,把一個大的數(shù)據(jù)文件拆分為多個小文件,還可以把這些小文件放在不同的磁盤下。這樣把一個大的文件拆分成多個小文件,便于我們對數(shù)據(jù)的管理。 

分庫分表是什么,什么情況下需要用分庫分表

1、什么是分庫分表?

顧名思義,即把存于一個庫的數(shù)據(jù)分散到多個庫中,把存于一個表的數(shù)據(jù)分散到多個表中。

2、什么情況下需要分庫分表?

當(dāng)一個數(shù)據(jù)庫被創(chuàng)建之后,隨著時間的推移和業(yè)務(wù)量的增加,數(shù)據(jù)庫中表以及表中的數(shù)據(jù)量就會越來越多,就有可能出現(xiàn)兩種弊端:(1)數(shù)據(jù)庫的存儲資源是有限的,其負(fù)載能力也是有限的,數(shù)據(jù)的大量積累肯定會導(dǎo)致其處理數(shù)據(jù)的能力下降;(2)數(shù)據(jù)量越多,那么對數(shù)據(jù)的增刪改查操作的開銷也會越來越大,所以,當(dāng)出現(xiàn)如上兩種情況,分庫分表勢在必行。

3、分庫分表的方式

(1)垂直切分

適用場景:如果是因為表的個數(shù)多而讓數(shù)據(jù)多,可以按照功能劃分,把聯(lián)系密切的表切分出來放在同一個庫中(分庫);

如果表的字段太多,可以以列為出發(fā)點,將字段進(jìn)行拆分(分表);

(2)水平切分

適用場景:如果是因為表中的數(shù)據(jù)量過于龐大,則可以采用水平切分,按照某種約定好的規(guī)則將數(shù)據(jù)切分到不同的數(shù)據(jù)庫中;

必須要根據(jù)當(dāng)前數(shù)據(jù)庫的情況做出合適的選擇,也可以將兩種情況結(jié)合在一起。

4、如何聯(lián)合查找?

分庫分表的結(jié)果會使數(shù)據(jù)分散,不好查詢,主要有兩種查詢方式:

(1)、分步查:先查找主表,然后得到關(guān)聯(lián)表的id,再發(fā)起請求得到關(guān)聯(lián)數(shù)據(jù);

(2)、聯(lián)合查:同時發(fā)起多個查詢請求,然后將所有的結(jié)果集合起來。 

到此這篇關(guān)于數(shù)據(jù)庫分庫分表是什么,什么情況下需要用分庫分表的文章就介紹到這了,更多相關(guān)數(shù)據(jù)庫分庫分表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

標(biāo)簽:仙桃 崇左 蘭州 黃山 湖南 銅川 衡水 湘潭

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《數(shù)據(jù)庫分庫分表是什么,什么情況下需要用分庫分表》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    白玉县| 萝北县| 长岛县| 彭山县| 汶上县| 句容市| 长白| 郯城县| 抚宁县| 伊川县| 治多县| 衡阳县| 西乌| 兴安盟| 泰和县| 房产| 商都县| 周宁县| 湖北省| 射洪县| 永昌县| 宾川县| 红河县| 托克逊县| 阳原县| 凤山市| 昭通市| 安阳县| 忻州市| 高台县| 连江县| 红原县| 房产| 临武县| 周至县| 阿城市| 松滋市| 防城港市| 曲麻莱县| 海林市| 高唐县|