MySQL5.5 RANGE分区增加删除处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL5.5 RANGE分区增加删除处理相关的知识,希望对你有一定的参考价值。

一、删除分区


##查看要处理的分区的数据量,并导出作为备份


mysql> select count(*)  from baby_account_change_log where updated_time >‘2016-12-01 00:00:00‘ and updated_time <‘2017-01-01 00:00:00‘;

+----------+

| count(*) |

+----------+

|    66252 | 

+----------+

1 row in set (0.23 sec)


##导出备份


mysql> select *  into outfile ‘/tmp/baby_account_change_log_p1.sql‘ from baby_account_change_log where updated_time >‘2016-12-01 00:00:00‘ and updated_time <‘2017-01-01 00:00:00‘ limit 100000000000;

Query OK, 66252 rows affected (2.71 sec)



##确认要处理分区


mysql> explain partitions select count(*)  from baby_account_change_log where updated_time >‘2016-12-01 00:00:00‘ and updated_time <‘2017-01-01 00:00:00‘;


+----+-------------+-------------------------------+------------+-------+---------------+---------+---------+------+-------+--------------------------+

| id | select_type | table                         | partitions | type  | possible_keys | key     | key_len | ref  | rows  | Extra                    |

+----+-------------+-------------------------------+------------+-------+---------------+---------+---------+------+-------+--------------------------+

|  1 | SIMPLE      | baby_account_change_log | p1         | index | NULL          | PRIMARY | 8       | NULL | 66252 | Using where; Using index | 

+----+-------------+-------------------------------+------------+-------+---------------+---------+---------+------+-------+--------------------------+


##删除分区


mysql> alter table baby_account_change_log drop partition p0;

Query OK, 0 rows affected (0.01 sec)


二、增加分区


#错误提示删除存储最大值分区

mysql> alter table baby_account_change_log add partition(PARTITION p13 VALUES LESS THAN (unix_timestamp(‘2017-12-31 23:59:59‘)));

ERROR 1481 (HY000): MAXVALUE can only be used in last partition definition


#删除存储最大值分区

mysql> alter table baby_account_change_log drop partition p12;


##增加新的分区


mysql> alter table baby_account_change_log add partition(PARTITION p12 VALUES LESS THAN (unix_timestamp(‘2017-12-31 23:59:59‘)));


本文出自 “影子骑士” 博客,请务必保留此出处http://andylhz2009.blog.51cto.com/728703/1931929

以上是关于MySQL5.5 RANGE分区增加删除处理的主要内容,如果未能解决你的问题,请参考以下文章

mysql5.6.20如何开启分区功能

创建,增加,删除mysql表分区

MySQL Partition Table--分区表优缺点

mysql在已有无分区表增加分区

MySQL5.5的分区表

Oracle分区表