MySQL語法 分發規則 partition等

2021-10-22 10:22:42 字數 4056 閱讀 2055

目錄

3.2. 優勢

概述= 水平分割槽(根據列屬性按行分)=

舉個簡單例子:乙個包含十年發票記錄的表可以被分割槽為十個不同的分割槽,每個分割槽包含的是其中一年的記錄。

水平分割槽的模式

range(範圍) – 這種模式允許dba將資料劃分不同範圍。例如dba可以將乙個表通過年份劃分成三個分割槽,80年代(1980』s)的資料,90年代(1990』s)的資料以及任何在2023年(包括2023年)後的資料。

hash(雜湊) – 這種模式允許dba通過對錶的乙個或多個列的hash key進行計算,最後通過這個hash碼不同數值對應的資料區域進行分割槽。例如dba可以建立乙個對錶主鍵進行分割槽的表。

key(鍵值) – hash模式的一種延伸,這裡的hash key是mysql系統產生的。

list(預定義列表) – 這種模式允許系統通過dba定義的列表的值所對應的行資料進行分割。例如:dba建立了乙個橫跨三個分割槽的表,分別根據2023年2023年和2023年值所對應的資料。

composite(復合模式) - 很神秘吧,哈哈,其實是以上模式的組合使用而已,就不解釋了。舉例:在初始化已經進行了range範圍分割槽的表上,我們可以對其中乙個分割槽再進行hash雜湊分割槽。

(按列分):

舉個簡單例子:乙個包含了大text和blob列的表,這些text和blob列又不經常被訪問,這時候就要把這些不經常使用的text和blob了劃分到另乙個分割槽,在保證它們資料相關性的同時還能提高訪問速度。

--日期 年份 partition

mysql>

create

table part_tab (

c1 int

default

null

, c2 varchar(30

)default

null

, c3 date

default

null

)engine

=myisam

partition

by range (

year

(c3))(

partition p0 values less than (

1995),

partition p1 values less than (

1996),

partition p2 values less than (

1997),

partition p3 values less than (

1998),

partition p4 values less than (

1999),

partition p5 values less than (

2000),

partition p6 values less than (

2001),

partition p7 values less than (

2002),

partition p8 values less than (

2003),

partition p9 values less than (

2004),

partition p10 values less than (

2010),

partition p11 values less than maxvalue )

;-- 分發策略

partition

by range (uid)

partition

by list (cid)

partition

byhash

(uid)

--subpartition

partition

by range (uid) subpartition by

hash

(uid %

4) subpartitions 2

(partition p0 values less than (

3000000

)data directory =

'/data0/data'

index directory =

'/data1/idx'

,partition p1 values less than (

6000000

)data directory =

'/data2/data'

index directory =

'/data3/idx'

)

* 刪除分割槽  

alert table users drop

partition p0;

#刪除分割槽 p0

* 重建分割槽

-- range 分割槽重建

-- 將原來的 p0,p1 分割槽合併起來,放到新的 p0 分割槽中。

alter

table users reorganize partition p0,p1 into

(partition p0 values less than (

6000000))

;--list 分割槽重建

--將原來的 p0,p1 分割槽合併起來,放到新的 p0 分割槽中。

alter

table users reorganize partition p0,p1 into

(partition p0 valuesin(

0,1,

4,5,

8,9,

12,13)

);#--hash/key 分割槽重建

-- 用 reorganize 方式重建分割槽的數量變成2,在這裡數量只能減少不能增加。想要增加可以用 add partition 方法。

alter

table users reorganize partition

coalesce

partition2;

* 新增分割槽

--新增 range 分割槽

alter

table category add

partition

(partition p4 valuesin(

16,17,

18,19)

data directory =

'/data8/data'

index directory =

'/data9/idx');

--新增 hash/key 分割槽

alter

table users add

partition partitions 8

;#將分割槽總數擴充套件到8個。

-- 給已有的表加上分割槽

alter

table results partition

by range (

month

(ttime))(

partition p0 values less than (1)

,partition p1 values less than (2)

,partition p2 values less than (3)

,partition p3 values less than (4)

,partition p4 values less than (5)

,partition p5 values less than (6)

,partition p6 values less than (7)

,partition p7 values less than (8)

,partition p8 values less than (9)

,partition p9 values less than (10)

,partition p10 values less than (11)

,partition p11 values less than (12)

,partition p12 values less than (13)

);

= 初步結論 =

參考:

深入解析mysql分割槽(partition)功能

mysql 分發 MySQL 二進位制分發安裝

作業系統 red hat enterprise linux server release 6.5 mysql安裝包 mysql 5.6.34 linux glibc2.5 x86 64.tar.gz 1.linux中建立mysql組和mysql使用者 root lgr groupadd g 1000...

XML 語法規則

xml的語法規則非常簡單,同時也是非常嚴格的 它易於學習,易於使用。因此,開發能夠識別和處理xml的軟體也是非常容易的。xml文件使用自述式語法,並且,語法規則非常簡單。tove jani reminder don t forget me this weekend 文件的第一行 xml宣告 定義xm...

C 語法規則

c 中的布林型別 布林型別只占用乙個bit 但是如果連續定義多個布林型別時,編譯器可能會多個布林型別定義在一起。true 編譯器用1來表示。false 編譯器用0來表示。將乙個其他型別的資料賦給布林型別變數 c 編譯器會將所有的非0的值轉換為true 1 將0 轉化為false 0 三木運算子?將乙...