当前位置: 首页 > article >正文

在MySQL中将一个表切换到另一个表并启用分区

创建新分区表: 首先,你需要创建一个与原表结构相同但启用了分区的新表。

CREATE TABLE `new_table` (
  -- 列定义省略,请根据你的表结构补充
)
PARTITION BY RANGE COLUMNS(MONTH(FROM_UNIXTIME(create_time)))
(
  PARTITION p1 VALUES LESS THAN (2),
  PARTITION p2 VALUES LESS THAN (3),
  PARTITION p3 VALUES LESS THAN (4),
  PARTITION p4 VALUES LESS THAN (5),
  PARTITION p5 VALUES LESS THAN (6),
  PARTITION p6 VALUES LESS THAN (7),
  PARTITION p7 VALUES LESS THAN (8),
  PARTITION p8 VALUES LESS THAN (9),
  PARTITION p9 VALUES LESS THAN (10),
  PARTITION p10 VALUES LESS THAN (11),
  PARTITION p11 VALUES LESS THAN (12),
  PARTITION p12 VALUES LESS THAN MAXVALUE
);

将数据导入新表: 使用INSERT INTO ... SELECT语句将数据从旧表复制到新表。

INSERT INTO `new_table`
SELECT * FROM `old_table`;

 重命名表: 重命名旧表,然后将新表重命名为旧表的名字。

RENAME TABLE `old_table` TO `old_table_backup`, `new_table` TO `old_table`;

 更新数据: 如果在切换期间有新数据插入到旧表,可以使用INSERT INTO ... SELECT语句再次将新数据复制到新表。

INSERT INTO `old_table`
SELECT * FROM `old_table_backup`
WHERE create_time >= [某个时间点];

 删除备份表(如果需要): 如果你不再需要备份,可以删除备份表。

DROP TABLE `old_table_backup`;

请注意,这个过程中可能会有一些数据复制和表重命名的时间,这可能导致在操作期间的一小段时间内产生某种程度的中断。因此,建议在低峰时段执行此类操作,并确保有合适的备份以防发生意外。 

 


http://www.kler.cn/news/147949.html

相关文章:

  • 随笔美文2
  • 16、单例bean的优势
  • Linux——vim编辑文件时——.swp文件解决方案
  • openstack(2)
  • 【2023.11.28】关于Servlet路径的学习
  • Python大数据考题
  • 医学图像分割:U_Net 论文阅读
  • 电脑风扇转一下停一下,无法正常开机问题解决
  • 算法基础之模拟堆
  • frida - 2.hook使用
  • 精彩预告 | OpenHarmony即将亮相MTSC 2023
  • Android gradle 配置阿里镜像
  • k8s学习
  • 振南技术干货集:制冷设备大型IoT监测项目研发纪实(1)
  • Moonbeam生态项目分析 — — 去中心化交易所Beamswap
  • 【人工智能】Chatgpt的训练原理
  • 什么是终端服务器
  • JAVA爬虫1 - HttpClient的使用
  • 【leetcode】62. 不同路径
  • 如何使用Cloudreve将个人电脑打造为私有云盘并实现远程访问
  • Android13 launcher循环切页
  • SQLITE 日期格式转换
  • Hands-on Machine Learning with Scikit-Learn,Keras TensorFlow
  • 【Kotlin精简】第9章 Kotlin Flow
  • 算法刷题-动态规划3(未完待续---------
  • C++初阶(十二)string的模拟实现
  • openGauss学习笔记-130 openGauss 数据库管理-参数设置-重设参数
  • 美创科技受邀亮相第二届全球数字贸易博览会
  • 008 OpenCV matchTemplate 模板匹配
  • 【UGUI】中Content Size Fitter)组件-使 UI 元素适应其内容的大小