• 售前

  • 售后

热门帖子
入门百科

MySQL 5.5 range分区增长删除处理处罚的方法示例

[复制链接]
123457018 显示全部楼层 发表于 2021-10-25 19:32:41 |阅读模式 打印 上一主题 下一主题
先容
RANGE分区基于一个给定的连续区间范围,早期版本RANGE告急是基于整数的分区。在5.7版本中DATE、DATETIME列也可以使用RANGE分区,同时在5.5以上的版本提供了基于非整形的RANGE COLUMN分区。RANGE分区必须的连续的且不能重叠。使用
“VALUES LESS THAN ()” 来界说分区区间,非整形的范围值需要使用单引号,而且可以使用MAXVALUE作为分区的最高值。
本文将给各人先容MySQL 5.5 range分区增长删除处理的相关内容,分享给各人供各人参考学习,下面来看看详细的先容:
一、删除分区
  1. ##查看要处理的分区的数据量,并导出作为备份
  2. 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';
  3. +----------+
  4. | count(*) |
  5. +----------+
  6. | 66252 |
  7. +----------+
  8. 1 row in set (0.23 sec)
  9. ##导出备份
  10. 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;
  11. Query OK, 66252 rows affected (2.71 sec)
  12. ##确认要处理分区
  13. 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';
  14. +----+-------------+-------------------------------+------------+-------+---------------+---------+---------+------+-------+--------------------------+
  15. | id | select_type | table       | partitions | type | possible_keys | key  | key_len | ref | rows | Extra     |
  16. +----+-------------+-------------------------------+------------+-------+---------------+---------+---------+------+-------+--------------------------+
  17. | 1 | SIMPLE  | baby_account_change_log | p1   | index | NULL   | PRIMARY | 8  | NULL | 66252 | Using where; Using index |
  18. +----+-------------+-------------------------------+------------+-------+---------------+---------+---------+------+-------+--------------------------+
  19. ##删除分区
  20. mysql> alter table baby_account_change_log drop partition p0;
  21. Query OK, 0 rows affected (0.01 sec)
复制代码
二、增长分区
  1. #错误提示删除存储最大值分区
  2. mysql> alter table baby_account_change_log add partition(PARTITION p13 VALUES LESS THAN (unix_timestamp('2017-12-31 23:59:59')));
  3. ERROR 1481 (HY000): MAXVALUE can only be used in last partition definition
  4. #删除存储最大值分区
  5. mysql> alter table baby_account_change_log drop partition p12;
  6. ##增加新的分区
  7. mysql> alter table baby_account_change_log add partition(PARTITION p12 VALUES LESS THAN (unix_timestamp('2017-12-31 23:59:59')));
复制代码
总结
以上就是这篇文章的全部内容了,希望本文的内容对各人的学习大概工作能带来一定的帮助,如果有疑问各人可以留言互换,谢谢各人对草根技术分享的支持。

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作