標籤:oracle
分區跟分表類似,目的是將一張表分到不通的儲存中,這樣可以減少單一磁碟IO佔用,提高資料庫效率
分區主要有兩種形式
水平資料分割
對錶的行進行分區,
垂直資料分割
減少表的寬度,
想使用分區,需要先查看當前是否支援
show variables like ‘%partition%‘
出現yes即可使用
執行個體,按照range方式分區的表
create table if not exists gao(id int primary key auto_increment , name varchar(30))
default charset=utf8 auto_increment=1
partition by range(id)(
partition p0 values less than(10) data directory ‘/data/gao1‘,
partition p1 values less than maxvalue data directory ‘/data/gao2‘);
650) this.width=650;" height="274" src="http://b287.photo.store.qq.com/psb?/81c1194a-ff39-4e50-b1b1-40057b06260f/8PFnxN95uS05.jRnWv1t.KdRSo1ueH8*smvPQ5j68kE!/b/dB8BAAAAAAAA&bo=UQESAQAAAAAFEHA!" width="337" style="vertical-align:top;font-family:Arial;font-size:14px;white-space:normal;" alt="dB8BAAAAAAAA&bo=UQESAQAAAAAFEHA!" />
alter table 表名 add partition (partition 名字 values less than (n)) 增加分區
alter table 表名 reorganize partition p1,p2,p3 into(partition p1 values less than(10) , partition p2 values less than(20)) 合并分區
------------------------------------------------------------------------------------------------------------
使用list分區
partition by list(id) 是一個數字列
(partition p1 values in (1,3,5)
partition p2 values in (2,4,6)); 每個分區表寫入id值一樣的,如果寫入的數字分區表中沒有則會報錯,數值不能重複只能有一個.
---------------------------------------------------------------------------------------------------------------
分區跟分表的區別,
mysql的分表是真正的分表,一張表分成多個表,每個表都是完整的一張,都擁有三個檔案,MYD資料檔案,MYI索引檔案,FRM表結構檔案
分區是將一張表進行多個存放,還是一張表,不會變多,
分區跟分表是可以同時使用的!!!!不衝突
都是為了mysql提高效能
分表麻煩,需要單獨建立分表,分區則不需要,會自動建立.
本文出自 “11627223” 部落格,請務必保留此出處http://11637223.blog.51cto.com/11627223/1911978
centos7-mysql-分區