標籤:blog http io ar 檔案 資料 sp 2014 art
背景知識:
表分區是把邏輯上同一範圍的資料儲存到同一個檔案中,就和超市一樣,把同類商品放在同一個地區,把不同的商品放在不同的地方。不同的是超市中
是根據用途分類的,表分區是根據它的取值區間來分的。
分區有什麼用?
1、分區後可以用多個檔案來儲存表中的資料,而這幾個檔案可以位於不同的硬碟上,這樣就可以同時利用多個硬碟的IO能力。
2、分區後鎖就會更靈活,如果一次要鎖定大量的資料行,而表沒有分區,MYSQL 可能會為了減小在鎖上的開銷,會把行鎖升
級為表鎖,如果表分區了,要訪問的資料行只在表的一兩個分區中,這樣就可以只鎖定這兩個分區。而不要鎖定整個表。
3、由於目前MYSQL一個資料庫儲存在一個檔案夾中,好像檔案夾不可以跨硬碟,所以第 1 點說的好處就沒有了,不過在別的
資料庫如SQL Server中這個好處是有的。
方法 1、
partition by range (column_name) partition pt... values less than方法
create table T1(X int ,Y int)
partition by range (X)(
partition p0 values less than(10),
partition p3 values less than(100),
partition p5 values less than maxvalue);
就這樣給T1 根據X的取值分成了三個區
方法 2
partiton by list (column) partition pt.. values in(value1,value2,...);
create table T2(X int ,Y int)
PARTITION BY LIST(X)(
partition p1 values in (1,2,3),
partition p2 values in (4,5,6),
partition p3 values in (7,8,9))
;
這裡是方法1、方法2 建立的檔案。
MYSQL 表分區的 3 方法