在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

mysql如何删除分区

130次阅读
没有评论

共计 4191 个字符,预计需要花费 11 分钟才能阅读完成。

这篇文章主要介绍了 mysql 如何删除分区的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇 mysql 如何删除分区文章都会有所收获,下面我们一起来看看吧。

在 mysql 中,可以利用 alter 语句配合“DROP PARTITION”来删除分区,“DROP PARTITION”的作用就是用于删除指定的分区,语法为“ALTER TABLE 表名 DROP PARTITION 分区名”。

本教程操作环境:windows10 系统、mysql8.0.22 版本、Dell G3 电脑。

mysql 删除分区

删除分区语法为:ALTER TABLE 表名 DROP PARTITION 分区名

清理分区数据为空,保留分区不删除,仅仅是清理数据,命令如下

alter table bm_scenes_data_reminder truncate partition p20210104;

删除分区

alter table bm_scenes_data_reminder drop partition p20210104;

删除后执行查看建表语句,可以看到 p20210104 分区没有了

增加分区

## 如果希望将刚删除的 p20210104 分区重新加回去?怎么办。先尝试直接执行增加分区命令试试

ALTER TABLE bm_scenes_data_reminder ADD PARTITION (PARTITION p20210104 VALUES LESS THAN (738159) ENGINE = InnoDB);

结果如下,说明是不可行的。

mysql  ALTER TABLE bm_scenes_data_reminder ADD PARTITION (PARTITION p20210104 VALUES LESS THAN (738159) ENGINE = InnoDB);
ERROR 1481 (HY000): MAXVALUE can only be used in last partition definition
mysql 

##1 步骤中不可行,提示必须是在最后一个分区的后面才可以这样增加。

因此如果一定要加回 p20210104 这个分区(即需要在中间部分增加分区), 只能将 p20210104 后面的分区先全删除,再增加 p20210104 分区,再后 p20210104 后面的分区重新加回去。操作如下:

## 先删除 p20210104 分区后面的所有分区

ALTER TABLE bm_scenes_data_reminder drop PARTITION p20210105;
ALTER TABLE bm_scenes_data_reminder drop PARTITION p20210106;
ALTER TABLE bm_scenes_data_reminder drop PARTITION p20210107;
ALTER TABLE bm_scenes_data_reminder drop PARTITION p20210108;
ALTER TABLE bm_scenes_data_reminder drop PARTITION p20210109;
ALTER TABLE bm_scenes_data_reminder drop PARTITION p20210110;
ALTER TABLE bm_scenes_data_reminder drop PARTITION future;

## 增加 p20210104 分区

ALTER TABLE bm_scenes_data_reminder ADD PARTITION (PARTITION p20210104 VALUES LESS THAN (738159) ENGINE = InnoDB);

## 把 p20210104 分区后面的所有分区重新加回去

ALTER TABLE bm_scenes_data_reminder ADD PARTITION (PARTITION p20210105 VALUES LESS THAN (738160) ENGINE = InnoDB);
ALTER TABLE bm_scenes_data_reminder ADD PARTITION (PARTITION p20210106 VALUES LESS THAN (738161) ENGINE = InnoDB);
ALTER TABLE bm_scenes_data_reminder ADD PARTITION (PARTITION p20210107 VALUES LESS THAN (738162) ENGINE = InnoDB);
ALTER TABLE bm_scenes_data_reminder ADD PARTITION (PARTITION p20210108 VALUES LESS THAN (738163) ENGINE = InnoDB);
ALTER TABLE bm_scenes_data_reminder ADD PARTITION (PARTITION p20210109 VALUES LESS THAN (738164) ENGINE = InnoDB);
ALTER TABLE bm_scenes_data_reminder ADD PARTITION (PARTITION p20210110 VALUES LESS THAN (738165) ENGINE = InnoDB);
ALTER TABLE bm_scenes_data_reminder ADD PARTITION (PARTITION future VALUES LESS THAN MAXVALUE ENGINE = InnoDB);

最后再查看一下 ddl 发现分区加回去了,但这种操作方式会把 p20210104 分区后面的所有分区数据删除,在正式线上环境中请慎

案例

系统有操作系统表 sys_log,实现每天删除 90 天前的分区并同时建一个 4 天后的分区(即每天将 4 天后的分区创建表),步骤如下:

## 新建普通表,只执行一次

CREATE TABLE `sys_log` ( `id` bigint(20) NOT NULL AUTO_INCREMENT,
 `begin_time` datetime DEFAULT NULL COMMENT  开始时间 ,
 `end_time` datetime DEFAULT NULL COMMENT  结束时间 ,
 `spend_mills` int(11) DEFAULT NULL COMMENT  运行时长, 单位 ms ,
 `username` varchar(100) DEFAULT NULL COMMENT  用户 id ,
 `log_status` int(11) NOT NULL DEFAULT  0  COMMENT  运行状态,[0]成功 [1] 失败 ,
 `code` int(11) NOT NULL DEFAULT  0  COMMENT  错误码 ,
 `remote_addr` varchar(50) DEFAULT   COMMENT  远程地址 ,
 `request_uri` varchar(255) DEFAULT NULL COMMENT  请求路径 ,
 `user_agent` text COMMENT  用户代理 ,
 `req_data` text NOT NULL COMMENT  请求参数 ,
 `resp_data` longtext NOT NULL COMMENT  返回结果 ,
 PRIMARY KEY (`id`) USING BTREE,
 KEY `idx_log_begintime` (`begin_time`) USING BTREE COMMENT  系统日志的 beginTime 字段索引 
) ENGINE=Innodb DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

## 修改成分区表,只执行一次,留一个当前时间的分区和将来的 future 分区

ALTER TABLE `sys_log` DROP PRIMARY KEY, ADD PRIMARY KEY(`id`,`begin_time`);
alter table sys_log partition by RANGE (to_days(begin_time)) ( PARTITION p20210816 VALUES LESS THAN (738383),
 PARTITION future VALUES LESS THAN MAXVALUE
);

## 每天执行以下的分区操作,进行增加一天的分区, 如

ALTER TABLE sys_log drop PARTITION future;
ALTER TABLE sys_log ADD PARTITION (PARTITION p20210817 VALUES LESS THAN (738384) ENGINE = InnoDB);
ALTER TABLE sys_log ADD PARTITION (PARTITION p20210818 VALUES LESS THAN (738385) ENGINE = InnoDB);
ALTER TABLE sys_log ADD PARTITION (PARTITION p20210819 VALUES LESS THAN (738386) ENGINE = InnoDB);
ALTER TABLE sys_log ADD PARTITION (PARTITION future VALUES LESS THAN MAXVALUE ENGINE = InnoDB);

## 定时任务配置,每天执行一次分区的清理与创建

30 4 * * * /bin/python /home/testuser/SyslogPartitionClear.py  /dev/null 2 1

关于“mysql 如何删除分区”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“mysql 如何删除分区”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-15发表,共计4191字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 国产亚洲精品热视频在线观看 | 一区二区免费视频观看 | 四虎4hu亚洲精品 | 色综合图片 | 欧美成人在线观看 | 亚洲国产人久久久成人精品网站 | 精品国产品香蕉在线观看75 | 久久精品国产久精国产爱 | 97在线观看播放 | 亚洲精品福利网站 | 亚洲av人无码激艳猛片服务器 | 国产成人精品亚洲 | 老头边吃奶边弄进去呻吟 | 日韩欧美国产中文字幕 | 中文字幕在线观看亚洲 | 护士脱了内裤让我爽了一夜视频 | 久久青青草原国产毛片 | 四虎影院在线免费观看 | 男人深夜影院 | 欧美aaaaaa级午夜福利视频 | 亚洲欧美日韩精品一区 | 欧美韩国日本在线 | 少妇被粗大的猛烈进出69影院一 | 国产精品久久人人做人人爽 | 精品在线一区二区 | 美女特黄 | 久久欧美精品欧美九久欧美 | 午夜影院免费体验 | 天堂热| 91亚洲精品第一综合不卡播放 | 精品久久久久久久无码人妻热 | 狠狠色噜噜狠狠狠狠888奇禾 | 欧美日韩在线成人免费视频大全 | 日韩免费视频一区二区 | 国产xxx69麻豆国语对白 | 亚洲ⅴ国产v天堂a无码二区 | 国产乱妇无码大片在线观看 | 亚洲精品一区二区三区在线看 | 久草久草 | 久久er99| 日日摸夜夜摸无需播放器 |