MySQL分庫、分表的問題

問題描述

  • 為什么進(jìn)行分表? 分庫?

  • 一般多少數(shù)據(jù)量開始分表?

  • 什么是數(shù)據(jù)庫垂直拆分和水平拆分

回答

為什么要進(jìn)行分庫

業(yè)務(wù)發(fā)展滑蚯,當(dāng)單個數(shù)據(jù)庫中的表越來越多浪蹂,數(shù)據(jù)量越來越大的時候。數(shù)據(jù)的增刪改查所消耗的資源就會增加告材。由于mysql是無法分布式部署(可能會有人說不是有主從嗎坤次?并不是,詳細(xì)會在其他文章說明)的创葡。==而單臺服務(wù)器的資源浙踢,如CPU绢慢、磁盤灿渴、內(nèi)存、IO等都是有限的胰舆。最終數(shù)據(jù)庫所承載的數(shù)據(jù)量和處理數(shù)據(jù)的能力就會遇到瓶頸==骚露。此時有兩種解決方案:

  • 橫向擴(kuò)展

  • 縱向擴(kuò)展

縱向擴(kuò)展就是增加單臺服務(wù)器的性能,如升級cpu缚窿,內(nèi)存棘幸,磁盤換ssd等,這是最簡單的方案倦零,但是也是最燒錢的误续。

橫向擴(kuò)展就是對數(shù)據(jù)進(jìn)行拆分吨悍,放置到多臺服務(wù)器(相對廉價的服務(wù)器)上。對數(shù)據(jù)進(jìn)行拆分蹋嵌,一般是對數(shù)據(jù)進(jìn)行合理的分庫育瓜,再對分離出來的庫進(jìn)行調(diào)優(yōu)。即將單臺服務(wù)器上的壓力分布到多臺機(jī)器中栽烂。這就是分庫的理由

為什么進(jìn)行分表

當(dāng)MySQL的單表的數(shù)據(jù)達(dá)到一定量級的時候(如一千萬)的時候躏仇,就需要考慮進(jìn)行分表。因?yàn)榇藭r的MySQL的執(zhí)行性能就會下降(這和mysql本身的實(shí)現(xiàn)機(jī)制有關(guān))腺办。簡單來講有如下兩個原因

  • 鎖機(jī)制

為了保證數(shù)據(jù)的完整性焰手,數(shù)據(jù)庫有鎖定機(jī)制。MySQL中有表鎖定和行鎖定怀喉,MySQL中myisam存儲引擎是表鎖定书妻,innodb存儲引擎是行鎖定。分為包含共享鎖和獨(dú)占鎖兩種磺送。獨(dú)占鎖就是整個數(shù)據(jù)文件歸一個線程所有驻子,其他線程就必須等待。==如果數(shù)據(jù)太多估灿,一次執(zhí)行的時間太長==崇呵,特別是在鎖表的情況下,就會導(dǎo)致大量的其他SQL等待執(zhí)行馅袁,嚴(yán)重影響系統(tǒng)的正常使用域慷。

  • 索引更新

更新表數(shù)據(jù)時會導(dǎo)致索引更新,當(dāng)單表數(shù)據(jù)量很大時這個過程比較耗時汗销,這就是為什么對大表進(jìn)行新增操作會比較慢的原因犹褒。并且更新表數(shù)據(jù)會進(jìn)行表級鎖或者行鎖,這樣就導(dǎo)致其他操作等待弛针。

所以我們將大表拆分為多個字表叠骑,那么在更新或者查詢數(shù)據(jù)的時候,壓力會分散到不同的表上削茁。由于分表之后每個表的數(shù)據(jù)較小宙枷,不管是查詢還是更新都極大的提高了速度,即使出現(xiàn)最壞的“鎖表”的情況茧跋,那其他表還是可以并行使用慰丛。

一般多少數(shù)據(jù)量開始分表

這個問題沒有一個固定的答案,需要根據(jù)表的用途和業(yè)務(wù)來要求來評估此數(shù)據(jù)量瘾杭。但是诅病,當(dāng)mysql的數(shù)據(jù)量達(dá)到千萬級別的時候,就需要考慮是否需要進(jìn)行分表操作。以下幾個是一些參考因素:

  • 寫入量(高峰期寫入量贤笆,是否會造成鎖表導(dǎo)致讀或者寫出現(xiàn)一些問題蝇棉,insert,update芥永,delete的比例各多少)

  • 查詢量(查詢量多大银萍,是否跟寫會造成相互影響)

  • 查詢方式(單記錄查詢,還是多記錄查詢恤左,是否有count查詢贴唇,比重各占多少,每次返回的記錄數(shù)數(shù)量級1飞袋,10戳气,100,1000 巧鸭。瓶您。。)

  • 是否有分頁(重點(diǎn)關(guān)注纲仍,是否存在大分頁)

1呀袱,2 算是比較基礎(chǔ)的,正常1kw以下都沒太大問題郑叠。3夜赵,4 受單表數(shù)據(jù)量的影響起始更小,但是反過來乡革,這個就直接影響到 1寇僧,2

不同的情形,數(shù)據(jù)量的規(guī)模不太一樣沸版。例如嘁傀,單表只有insert和單條查詢的,每天增長百萬數(shù)據(jù)视粮,這種億的規(guī)模問題都不大细办,當(dāng)然能拆最好~

有簡單 in 查詢的,這種也能夠接受~ 但是如果有比較大的查詢蕾殴,或者比較復(fù)雜的笑撞,包括大分頁,然后還有大量的 update的区宇,這種表就不能太大娃殖,正常不要超過 300w~

==update 的頻率值戳,應(yīng)該算是里面影響比較大的因素==议谷,insert一般只添加數(shù)據(jù),不會對查詢造成太多影響但是update和 select 可能就會有比較大的相互影響了~

什么是垂直拆分和水平拆分

  • 垂直拆分是指數(shù)據(jù)表列的拆分堕虹,把一張列比較多的表拆分為多張表 或者 將表按模塊劃分到不同數(shù)據(jù)庫表中(分庫或者拆表)

  • 水平拆分是指數(shù)據(jù)表行的拆分卧晓,比如表的行數(shù)超過200萬行時芬首,就會變慢,這時可以把一張的表的數(shù)據(jù)拆成多張表來存放==(分表)==逼裆。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末郁稍,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子胜宇,更是在濱河造成了極大的恐慌耀怜,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桐愉,死亡現(xiàn)場離奇詭異财破,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)从诲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門左痢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人系洛,你說我怎么就攤上這事俊性。” “怎么了描扯?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵定页,是天一觀的道長。 經(jīng)常有香客問我绽诚,道長拯勉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任憔购,我火速辦了婚禮宫峦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘玫鸟。我一直安慰自己导绷,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布屎飘。 她就那樣靜靜地躺著妥曲,像睡著了一般。 火紅的嫁衣襯著肌膚如雪钦购。 梳的紋絲不亂的頭發(fā)上檐盟,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天,我揣著相機(jī)與錄音押桃,去河邊找鬼葵萎。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的羡忘。 我是一名探鬼主播谎痢,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼卷雕!你這毒婦竟也來了节猿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤漫雕,失蹤者是張志新(化名)和其女友劉穎滨嘱,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浸间,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡九孩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了发框。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片躺彬。...
    茶點(diǎn)故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖梅惯,靈堂內(nèi)的尸體忽然破棺而出宪拥,到底是詐尸還是另有隱情,我是刑警寧澤铣减,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布她君,位于F島的核電站,受9級特大地震影響葫哗,放射性物質(zhì)發(fā)生泄漏缔刹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一劣针、第九天 我趴在偏房一處隱蔽的房頂上張望校镐。 院中可真熱鬧,春花似錦捺典、人聲如沸鸟廓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽引谜。三九已至,卻和暖如春擎浴,著一層夾襖步出監(jiān)牢的瞬間员咽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工贮预, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贝室,地道東北人契讲。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像档玻,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子茫藏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容