前言

在介绍交换分区之前,我们先了解一下 mysql 分区。

数据库的分区有两种:水平分区和垂直分区。而MySQL暂时不支持垂直分区,因此接下来说的都是水平分区。水平分区即:以行为单位对表进行分区。比如:按照时间分区,每一年一个分区等。

在MySQL中,分区是可以交换的,可以将一个分区表中的一个分区和一个普通表中的数据互换。

交换分区的实现

1、交换分区的语法

解释:

将 分区表pt 的 分区p 和 一个普通表nt 中的数据 进行互换。

交换的前提条件:

普通表nt 不为临时表,且不是分区表。

表结构和分区表pt的结构一致。

普通表nt 没有外键引用。

普用表nt 若为非空。在MySQL5.6以及之前的版本,必须在分区的范围内;在MySQL5.7之后则可以不再其分区范围内,也依然会成功存入该分区中。

2、实验 交换分区

(1) 创建一个分区表,并插入数据

(2) 创建一个和分区表e结构一致的普通表e2

(3) 查看表e的分区中各有多少行

(4) 将表e的分区p0 交换到 普通表e2中

(5) 查看结果

由此发现,表e的分区p0的数据 搬移到了 表e2中。

上面的例子,是将一个分区 和 一个普通的空表 交换,这样相当于将一个分区的数据搬移了出去,通常使用在数据的归档中。

同样,交换分区也可以 在一个分区和一个非空普通表中 发生交换,这样普通表中的数据会搬迁到指定分区,该指定分区的数据会搬迁到普通表中。如下操作:

(6) 再向分区表e的p0中添加一条数据

(7) 执行 交换分区

(8) 查看结果

由此看出,表e的p0 和 表e2 的数据做了互换!这种场景,可以在普通表数据搬移到分区表的某个分区中使用。

但是,有一点需要注意:

若普通表的数据 不在 要交换的分区范围内,上面交换分区的语法,不可以执行成功!请看下面的操作。

(9) 在普通表e2中插入一条超出表e的p0范围的数据,执行上面的交换语句

在MySQL 5.6 版本中,该问题无法解决;而在MySQL 5.7.5版本中,增加了一个选项 WITHOUT VALIDATION ,可以解决上面的报错。操作如下:

查看结果:

总结

通过上述实践操作发现,MySQL 的交换分区的功能,有两种适用场景:

分区表的某个分区 和 一个空的普通表 交换,使得 分区表的该分区的数据搬移出去。

分区表的某个分区 和 一个非空普通表 交换,使得 普通表的数据搬移到分区表的指定分区中。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

原文链接:https://my.oschina.net/starglm/blog/1142983

mysql分区替换,MySQL交换分区的实例详解相关推荐

  1. php mysql修改命令_PHP编程:mysql alter table命令修改表结构实例详解

    <PHP编程:mysql alter table命令修改表结构实例详解>要点: 本文介绍了PHP编程:mysql alter table命令修改表结构实例详解,希望对您有用.如果有疑问,可 ...

  2. mysql心得体会一百字_MYSQL CPU 100%实例详解

    MYSQL CPU 100%实例详解 2011/7/2 11:19:19作者:xy我要评论(0) 自己的一台主机(Windows 2003 + IIS + PHP + MYSQL )近来 MySQL ...

  3. mysql 过程if语句,mysql存储过程之if语句用法实例详解

    这篇文章主要介绍了mysql存储过程之if语句用法,结合实例形式详细分析了mysql存储过程中if语句相关原理.使用技巧与操作注意事项,需要的朋友可以参考下 本文实例讲述了mysql存储过程之if语句 ...

  4. MySQL中你可能忽略的COLLATION实例详解

    文章来源: 学习通http://www.bdgxy.com/ 普学网http://www.boxinghulanban.cn/ 智学网http://www.jaxp.net/ 前言 MySQL 数据库 ...

  5. mysql单个查询_MySQL单表查询实例详解

    1.准备数据 以下操作将在该表中进行 create table student ( id int unsigned primary key auto_increment, name char(12) ...

  6. mysql添加新的实例_MySQL中添加新用户权限的实例详解

    有2个不同的方法增加用户:通过使用GRANT语句或通过直接操作MySQL授权表.比较好的方法是使用GRANT语句,因为他们是更简明并且好像错误少些. 下面的例子显示出如何使用MySQL客户安装新用户. ...

  7. mysql通过集合查询_MySQL使用集合函数进行查询操作实例详解

    本文实例讲述了MySQL使用集合函数进行查询操作.分享给大家供大家参考,具体如下: COUNT函数 SELECT COUNT(*) AS cust_num from customers; SELECT ...

  8. mysql的json函数与实例_Mysql实例详解Mysql中的JSON系列操作函数

    <Mysql实例详解Mysql中的JSON系列操作函数>要点: 本文介绍了Mysql实例详解Mysql中的JSON系列操作函数,希望对您有用.如果有疑问,可以联系我们. MYSQL必读前言 ...

  9. mysql 创建删除表_mysql创建删除表的实例详解

    表的创建命令需要: 表的名称 字段名称 定义每个字段(类型.长度等) 语法 下面是通用的SQL语法用来创建MySQL表: CREATE TABLE table_name (column_name ...

  10. php mysql PDO 查询操作的实例详解

    php mysql PDO 查询操作的实例详解 ? 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 ...

最新文章

  1. c#,xp系统,Matlab6.5
  2. 用Java描述数据结构之栈和队列,以及栈和队列的常用方法
  3. 增值税发票的种类_以及税率---财务知识工作笔记001
  4. HDFS数据平衡:节点间平衡与节点内平衡
  5. 51单片机(STC15W408AS)映射printf函数 串口收发实现
  6. 店铺二维码:如何生成大众点评二维码
  7. 关于分辨率,你该知道这些!
  8. 形容等待时间长的句子_形容等待已久的事终于等到句子
  9. 微软自带虚拟机Hyper—V启用
  10. GraphSAGE NIPS 2017 代码分析(Tensorflow版)
  11. 记录一下nginx代理引起的ip失真问题
  12. 招到不能胜任工作岗位的人,责任在不在HR?
  13. 8月9日华为发布了其自研的鸿蒙操作系统,华为正式发布自研操作系统鸿蒙
  14. webrtc-m79-PlanB 与 UnifiedPlan
  15. 国内外设计及素材站[转载]
  16. 求圆面积,圆周长,圆球表面积,圆球体积,圆柱体体积
  17. 2021-2027全球与中国针叶樱桃提取物市场现状及未来发展趋势
  18. 鸡尾酒排序算法c语言源代码,排序算法 -鸡尾酒排序
  19. 关于4294967295这个数字
  20. NFT交易系统|数字藏品系统开发 赋能艺术品数字产权 实现版权存证认证

热门文章

  1. 今年春节北京烟花爆竹备货量下降46.7%
  2. 如何注册Google Voice账号(电话号码)
  3. #扒一扒网易云课堂python课程,发现还是有不少可以白嫖的免费好资源
  4. 大数据分析项目生命周期
  5. HTML+CSS+JS在线客服对话框迷你版
  6. 在java中调用mockjs生成模拟数据
  7. java经纬度转平面坐标_经纬度到平面坐标的相互转换
  8. Xiph.Org基金会 —— 多媒体开源的先锋
  9. 有哪个瞬间让你觉得这个世界出bug了?
  10. cdr圆形渐变填充怎么设置_CDR渐变填充实例教程