您的位置:首页 > 数据库 > MySQL

第17章 Mysql分区表,已有表变更分区表

2015-10-27 08:55 405 查看
实际对比测试的时候,没有发现查询性能有明显提升,有待实际例子支撑。

查看是否支持:

show variables like '%partition%'

RANGE分区:http://www.cnblogs.com/chenmh/p/5627912.html

LIST分区:http://www.cnblogs.com/chenmh/p/5643174.html

COLUMN分区:http://www.cnblogs.com/chenmh/p/5630834.html

HASH分区:http://www.cnblogs.com/chenmh/p/5644496.html

KEY分区:http://www.cnblogs.com/chenmh/p/5647210.html

子分区:http://www.cnblogs.com/chenmh/p/5649447.html

指定各分区路径:http://www.cnblogs.com/chenmh/p/5644713.html

分区建索引:http://www.cnblogs.com/chenmh/p/5761995.html

分区介绍总结:http://www.cnblogs.com/chenmh/p/5623474.html

注意:

1,基于时间类型的字段的转换函数mysql提供了"YEAR(),MONTH(),DAY(),TO_DAYS(),TO_SECONDS(),WEEKDAY(),DAYOFYEAR()"

UNIX_TIMESTAMP() #针对timestemp日期类型

2,mysql5.7以后查询语句支持指定分区例如:“ SELECT * FROM t PARTITION (p0,p1) WHERE c < 5 

3,针对非整形字段进行RANG\LIST分区建议使用COLUMNS分区。

4,后期维护,可以使用“ALTER TABLE … OPTIMIZE PARTITION”来收回没有使用的空间,并整理分区数据文件的碎片。例子:ALTER TABLE t1 OPTIMIZE PARTITION (p0, p1);

已有表变更分区表步骤:
方法1:


直接修改:

a,修改
alter table `visit_trace2` partition by range(UNIX_TIMESTAMP(created))(
partition p0 values less than (UNIX_TIMESTAMP('2016-02-01 00:00:00')),
partition p1 values less than (UNIX_TIMESTAMP('2016-03-01 00:00:00')),
partition p2 values less than (UNIX_TIMESTAMP('2019-04-01 00:00:00'))
);

b,查看
select TABLE_SCHEMA,table_name,PARTITION_NAME,TABLE_ROWS
from information_schema.partitions where
TABLE_SCHEMA = 'tmp' and 
table_name='emp2';

c,修改
删除分区和数据(会删除数据!!!)
alter table emp2 drop partition p0;

移除单个分区定义:
ALTER TABLE emp2 REMOVE PARTITIONING p2 ;

移除所有分区定义:
alter table emp2 remove partitioning ; 

追加分区(要求新增的分区要比之前的分区大):
alter table mep2 add partition (partition p0 values less than (UNIX_TIMESTAMP('2016-02-01 00:00:00')));
alter table mep2 add partition (partition p0 values less than (maxvalue);  #添加最大分区

拆分分区:
ALTER TABLE employees REORGANIZE PARTITION p0 INTO (
PARTITION s0 VALUES LESS THAN (3),
PARTITION s1 VALUES LESS THAN (6)
);
方法2:

新建表修改:

参考url:
http://blog.itpub.net/15480802/viewspace-689399/  #百万级表
http://www.2cto.com/database/201502/376630.html   #上亿级表

1,导出表结构;

2,修改导出表结构为分区表;

3,导出导入数据;

4,修改表名;

5,完成;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: