mysql分表和分區的區別淺析_Mysql

來源:互聯網
上載者:User

一、什麼是mysql分表和分區

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

什麼是分區,分區呢就是把一張表的資料分成N多個區塊,這些區塊可以在同一個磁碟上,也可以在不同的磁碟上

二、mysql分表和分區有什麼區別呢

1、實現方式上

a)mysql的分表是真正的分表,一張表分成很多表後,每一個小表都是完正的一張表,都對應三個檔案,一個.MYD資料檔案,.MYI索引檔案,.frm表結構檔案。

複製代碼 代碼如下:
[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。他們二個都是獨立的表,取資料的時候,我們可以通過總表來取。這裡總表是沒有.MYD,.MYI這二個 檔案的,也就是說,總表他不是一張表,沒有資料,資料都放在分表裡面。我們來看看.MRG到底是什麼東西

複製代碼 代碼如下:
[root@BlackGhost test]# cat alluser.MRG |more
user1
user2
#INSERT_METHOD=LAST

從上面我們可以看出,alluser.MRG裡面就存了一些分表的關係,以及插入資料的方式。可以把總表理解成一個外殼,或者是聯結池。


b)分區不一樣,一張大表進行分區後,他還是一張表,不會變成二張表,但是他存放資料的區塊變多了。

複製代碼 代碼如下:
[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這張表,分為二個區,p1和p3,本來是三個區,被我刪了一個區。我們都知道一張表對應三個文 件.MYD,.MYI,.frm。分區呢根據一定的規則把資料檔案和索引檔案進行了分割,還多出了一個.par檔案,開啟.par檔案後你可以看出他記錄 了,這張表的分區資訊,根分表中的.MRG有點像。分區後,還是一張,而不是多張表。

2、資料處理上

a)分表後,資料都是存放在分表裡,總表只是一個外殼,存取資料發生在一個一個的分表裡面。看下面的例子:

select * from alluser where id='12'表面上看,是對錶alluser進行操作的,其實不是的。是對alluser裡面的分表進行了操作。

b)分區呢,不存在分表的概念,分區只不過把存放資料的檔案分成了許多小塊,分區後的表呢,還是一張表。資料處理還是由自己來完成。

3、提高效能上

a)分表後,單表的並發能力提高了,磁碟I/O效能也提高了。並發能力為什麼提高了 呢,因為查尋一次所花的時間變短了,如果出現高並發的話,總表可以根據不同的查詢,將並發壓力分到不同的小表裡面。磁碟I/O效能怎麼搞高了呢,本來一個 非常大的.MYD檔案現在也分攤到各個小表的.MYD中去了。

b)mysql提出了分區的概念,我覺得就想突破磁碟I/O瓶頸,想提高磁碟的讀寫能力,來增加mysql效能。
在這一點上,分區和分表的測重點不同,分表重點是存取資料時,如何提高mysql並發能力上;而分區呢,如何突破磁碟的讀寫能力,從而達到提高mysql效能的目的。

4、實現的難易度上

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

b)分區實現是比較簡單的,建立分區表,根建平常的表沒什麼區別,並且對開代碼端來說是透明的。

三、mysql分表和分區有什麼聯絡呢

1,都能提高mysql的性高,在高並髮狀態下都有一個良好的表面。

2,分表和分區不矛盾,可以相互配合的,對於那些大訪問量,並且表資料比較多的表,我們可以採取分表和分區結合的方式(如果merge這種分表方式,不能和分區配合的話,可以用其他的分表試),訪問量不大,但是表資料很多的表,我們可以採取分區的方式等。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.