您好,登錄后才能下訂單哦!
分區跟分表類似,目的是將一張表分到不通的存儲中,這樣可以減少單一磁盤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');
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提高性能
分表麻煩,需要單獨創建分表,分區則不需要,會自動創建.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。