mysql表分区

 

表分区的优点:

      查询优化

  • WHERE在某些分区中进行,不用查询更多的数据
  • 进行统计时,可以并行处理
  • 由于进行分区数据可以放在不同的磁盘,增加了查询的吞吐量
  • 删除数据更加方便,因为有时候,整个分区不需要了,直接删除
  • 存储的数据量加大了,可以将一个表中的数据放到不同的磁盘

      缺点

      除了数据库管理方面复杂了点,其它的还没有发现

 

只有5.1及之后的版本才支付分区,同时5.1中分区的一些维护的工具还不完善

 

mysql目前四种分区

1range

根据某个列的某种运算进行分区,分区的标志都是该列的某种运算后的连续区间

CREATE TABLE employees (
id INT NOT NULL,
fname VARCHAR(30),
lname VARCHAR(30),
hired DATE NOT NULL DEFAULT '1970-01-01',
separated DATE NOT NULL DEFAULT '9999-12-31',
job_code INT NOT NULL,
store_id INT NOT NULL
)
PARTITION BY RANGE (store_id) (
PARTITION p0 VALUES LESS THAN (6),
PARTITION p1 VALUES LESS THAN (11), PARTITION p2 VALUES LESS THAN (16),
PARTITION p3 VALUES LESS THAN MAXVALUE
) ALTER TABLE ADD PARTITION (PARTITION p3 VALUES LESS THAN (2000));
对于通过RANGE分区的表,只可以使用ADD PARTITION添加新的分区到分区列表的高端
2list分区
根据某个列的某种运算进行分区,分区的标志都是该列的某种运算后的集合
CREATE TABLE employees (     id INT NOT NULL,     fname VARCHAR(30),     lname VARCHAR(30),     hired DATE NOT NULL DEFAULT '1970-01-01',     separated DATE NOT NULL DEFAULT '9999-12-31',     job_code INT,     store_id INT ) PARTITION BY LIST(store_id)     PARTITION pNorth VALUES IN (3,5,6,9,17),     PARTITION pEast VALUES IN (1,2,10,11,19,20),     PARTITION pWest VALUES IN (4,12,13,14,18),     PARTITION pCentral VALUES IN (7,8,15,16) ) ;

3hash

某列某种运算后取模分配

CREATE TABLE employees (



    id INT NOT NULL,



    fname VARCHAR(30),



    lname VARCHAR(30),



    hired DATE NOT NULL DEFAULT '1970-01-01',



    separated DATE NOT NULL DEFAULT '9999-12-31',



    job_code INT,



    store_id INT



)



PARTITION BY HASH(store_id)



PARTITIONS 4



;

 

4key

md5分配分区
CREATE TABLE tk (
    col1 INT NOT NULL,



    col2 CHAR(5),



    col3 DATE



) 



PARTITION BY LINEAR KEY (col1)



PARTITIONS 3;



转移分区(list,range):

调整分区的结构,不会丢失数据

ALTER TABLE tbl_name







 REORGANIZE PARTITION partition_list







 INTO (partition_definitions







)



;
ALTER TABLE members REORGANIZE PARTITION p0,p1,p2,p3 INTO (     PARTITION m0 VALUES LESS THAN (1980),     PARTITION m1 VALUES LESS THAN (2000) ) ;

 

转移分区的一种方法,重建分区后,重新导数据

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值