欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql分表和分區(qū)的區(qū)別淺析

 更新時間:2014年07月03日 11:07:31   投稿:junjie  
這篇文章主要介紹了mysql分表和分區(qū)的區(qū)別淺析,并對它們之間的相同做了分析,需要的朋友可以參考下

數(shù)據(jù)庫的數(shù)據(jù)量達(dá)到一定程度之后,為避免帶來系統(tǒng)性能上的瓶頸。需要進(jìn)行數(shù)據(jù)的處理,采用的手段是分區(qū)、分片、分庫、分表。

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

什么是分表,從表面意思上看呢,就是把一張表分成N多個小表

什么是分區(qū),分區(qū)呢就是把一張表的數(shù)據(jù)分成N多個區(qū)塊,這些區(qū)塊可以在同一個磁盤上,也可以在不同的磁盤上

二、mysql分表和分區(qū)有什么區(qū)別呢

1、實(shí)現(xiàn)方式上

a)mysql的分表是真正的分表,一張表分成很多表后,每一個小表都是完正的一張表,都對應(yīng)三個文件,一個.MYD數(shù)據(jù)文件,.MYI索引文件,.frm表結(jié)構(gòu)文件。

[root@BlackGhost test]# ls |grep user
alluser.MRG
alluser.frm
user1.MYD
user1.MYI
user1.frm
user2.MYD
user2.MYI
user2.frm

簡單說明一下,上面的分表呢是利用了merge存儲引擎(分表的一種),alluser 是總表,下面有二個分表,user1,user2。他們二個都是獨(dú)立的表,取數(shù)據(jù)的時候,我們可以通過總表來取。這里總表是沒有.MYD,.MYI這二個 文件的,也就是說,總表他不是一張表,沒有數(shù)據(jù),數(shù)據(jù)都放在分表里面。我們來看看.MRG到底是什么東西

[root@BlackGhost test]# cat alluser.MRG |more
user1
user2
#INSERT_METHOD=LAST

從上面我們可以看出,alluser.MRG里面就存了一些分表的關(guān)系,以及插入數(shù)據(jù)的方式??梢园芽偙砝斫獬梢粋€外殼,或者是聯(lián)接池。


b)分區(qū)不一樣,一張大表進(jìn)行分區(qū)后,他還是一張表,不會變成二張表,但是他存放數(shù)據(jù)的區(qū)塊變多了。

[root@BlackGhost test]# ls |grep aa
aa#P#p1.MYD
aa#P#p1.MYI
aa#P#p3.MYD
aa#P#p3.MYI
aa.frm
aa.par

從上面我們可以看出,aa這張表,分為二個區(qū),p1和p3,本來是三個區(qū),被我刪了一個區(qū)。我們都知道一張表對應(yīng)三個文 件.MYD,.MYI,.frm。分區(qū)呢根據(jù)一定的規(guī)則把數(shù)據(jù)文件和索引文件進(jìn)行了分割,還多出了一個.par文件,打開.par文件后你可以看出他記錄 了,這張表的分區(qū)信息,根分表中的.MRG有點(diǎn)像。分區(qū)后,還是一張,而不是多張表。

2、數(shù)據(jù)處理上

a)分表后,數(shù)據(jù)都是存放在分表里,總表只是一個外殼,存取數(shù)據(jù)發(fā)生在一個一個的分表里面??聪旅娴睦樱?/p>

select * from alluser where id='12'表面上看,是對表alluser進(jìn)行操作的,其實(shí)不是的。是對alluser里面的分表進(jìn)行了操作。

b)分區(qū)呢,不存在分表的概念,分區(qū)只不過把存放數(shù)據(jù)的文件分成了許多小塊,分區(qū)后的表呢,還是一張表。數(shù)據(jù)處理還是由自己來完成。

3、提高性能上

a)分表后,單表的并發(fā)能力提高了,磁盤I/O性能也提高了。并發(fā)能力為什么提高了 呢,因?yàn)椴閷ひ淮嗡ǖ臅r間變短了,如果出現(xiàn)高并發(fā)的話,總表可以根據(jù)不同的查詢,將并發(fā)壓力分到不同的小表里面。磁盤I/O性能怎么搞高了呢,本來一個 非常大的.MYD文件現(xiàn)在也分?jǐn)偟礁鱾€小表的.MYD中去了。

b)mysql提出了分區(qū)的概念,我覺得就想突破磁盤I/O瓶頸,想提高磁盤的讀寫能力,來增加mysql性能。
在這一點(diǎn)上,分區(qū)和分表的測重點(diǎn)不同,分表重點(diǎn)是存取數(shù)據(jù)時,如何提高mysql并發(fā)能力上;而分區(qū)呢,如何突破磁盤的讀寫能力,從而達(dá)到提高mysql性能的目的。

4、實(shí)現(xiàn)的難易度上

a)分表的方法有很多,用merge來分表,是最簡單的一種方式。這種方式根分區(qū)難易度差不多,并且對程序代碼來說可以做到透明的。如果是用其他分表方式就比分區(qū)麻煩了。

b)分區(qū)實(shí)現(xiàn)是比較簡單的,建立分區(qū)表,根建平常的表沒什么區(qū)別,并且對開代碼端來說是透明的。

三、mysql分表和分區(qū)有什么聯(lián)系呢

1,都能提高mysql的性高,在高并發(fā)狀態(tài)下都有一個良好的表面。

2,分表和分區(qū)不矛盾,可以相互配合的,對于那些大訪問量,并且表數(shù)據(jù)比較多的表,我們可以采取分表和分區(qū)結(jié)合的方式(如果merge這種分表方式,不能和分區(qū)配合的話,可以用其他的分表試),訪問量不大,但是表數(shù)據(jù)很多的表,我們可以采取分區(qū)的方式等。

相關(guān)文章

  • 詳談mysql order by in 的字符順序(推薦)

    詳談mysql order by in 的字符順序(推薦)

    下面小編就為大家?guī)硪黄斦刴ysql order by in 的字符順序(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • 關(guān)于SQL?Update的四種常見寫法

    關(guān)于SQL?Update的四種常見寫法

    這篇文章主要介紹了關(guān)于SQL?Update的四種常見寫法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 快速解決mysql導(dǎo)出scv文件亂碼、躥行的問題

    快速解決mysql導(dǎo)出scv文件亂碼、躥行的問題

    這篇文章主要介紹了快速解決mysql導(dǎo)出scv文件亂碼、躥行的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • MySQL級聯(lián)復(fù)制下如何進(jìn)行大表的字段擴(kuò)容

    MySQL級聯(lián)復(fù)制下如何進(jìn)行大表的字段擴(kuò)容

    這篇文章主要介紹了MySQL級聯(lián)復(fù)制下進(jìn)行大表的字段擴(kuò)容,庫表信息環(huán)境是Mysql 8.0.22,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • mysql 數(shù)據(jù)插入優(yōu)化方法

    mysql 數(shù)據(jù)插入優(yōu)化方法

    當(dāng)一個線程對一個表執(zhí)行一個DELAYED語句時,如果不存在這樣的處理程序,一個處理器線程被創(chuàng)建以處理對于該表的所有DELAYED語句。
    2010-12-12
  • 詳解mysql解壓縮版安裝步驟

    詳解mysql解壓縮版安裝步驟

    這篇文章主要介紹了mysql解壓縮版安裝步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 在MySQL中使用Sphinx實(shí)現(xiàn)多線程搜索的方法

    在MySQL中使用Sphinx實(shí)現(xiàn)多線程搜索的方法

    這篇文章主要介紹了在MySQL中使用Sphinx實(shí)現(xiàn)多線程搜索的方法,修改Sphinx的搜索引擎配置即可,需要的朋友可以參考下
    2015-06-06
  • MySql使用存儲過程進(jìn)行單表數(shù)據(jù)遷移的實(shí)現(xiàn)

    MySql使用存儲過程進(jìn)行單表數(shù)據(jù)遷移的實(shí)現(xiàn)

    近期在進(jìn)行業(yè)務(wù)解耦,對冗余在一起切又屬于不同業(yè)務(wù)的代碼進(jìn)行分離,同時也將數(shù)據(jù)庫進(jìn)行分離存儲,那么這時候就涉及到多個表的數(shù)據(jù)要進(jìn)行遷移,本文就來介紹一下MySql使用存儲過程進(jìn)行單表數(shù)據(jù)遷移,感興趣的可以了解一下
    2023-11-11
  • 你真的會用Mysql的explain嗎

    你真的會用Mysql的explain嗎

    explain顯示了mysql如何使用索引來處理select語句以及連接表,可以幫助選擇更好的索引和寫出更優(yōu)化的查詢語句,下面這篇文章主要給大家介紹了關(guān)于Mysql中explain用法的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • MySQL數(shù)據(jù)庫閉包Closure Table表實(shí)現(xiàn)示例

    MySQL數(shù)據(jù)庫閉包Closure Table表實(shí)現(xiàn)示例

    本文主要介紹了MySQL數(shù)據(jù)庫閉包Closure Table表實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01

最新評論