各位用户为了找寻关于MySQL 5.5 range分区增加删除处理的方法示例的资料费劲了很多周折。这里教程网为您整理了关于MySQL 5.5 range分区增加删除处理的方法示例的相关资料,仅供查阅,以下为您介绍关于MySQL 5.5 range分区增加删除处理的方法示例的详细内容
介绍
RANGE分区基于一个给定的连续区间范围,早期版本RANGE主要是基于整数的分区。在5.7版本中DATE、DATETIME列也可以使用RANGE分区,同时在5.5以上的版本提供了基于非整形的RANGE COLUMN分区。RANGE分区必须的连续的且不能重叠。使用
“VALUES LESS THAN ()” 来定义分区区间,非整形的范围值需要使用单引号,并且可以使用MAXVALUE作为分区的最高值。
本文将给大家介绍MySQL 5.5 range分区增加删除处理的相关内容,分享给大家供大家参考学习,下面来看看详细的介绍:
一、删除分区
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30##查看要处理的分区的数据量,并导出作为备份
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)
二、增加分区
? 1 2 3 4 5 6 7 8 9 10#错误提示删除存储最大值分区
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