前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysqldump命令详解 Part 5-按条件备份表数据

mysqldump命令详解 Part 5-按条件备份表数据

作者头像
bsbforever
发布2020-08-19 16:55:11
1.5K0
发布2020-08-19 16:55:11
举报

实验环境:

  • MySQL 5.7.25
  • Redhat 6.10

前面我们建立了数据库并建立相关的对象

  • 数据库
  • 存储过程
  • 函数
  • 触发器
  • 事件

今天的内容为按条件备份表数据

1. 备份语句

我们来备份test数据库中的innodb_table表和isam_table表中id为10的数据

从这起开始在备份语句中加入--single-transaction 参数

该参数在innodb中可以不对表施加写入锁进行导出,MyISAM引擎还是锁表的

代码语言:javascript
复制
mysqldump -h127.0.0.1 -usystem -p123456  --single-transaction --set-gtid-purged=OFF  --databases test --tables innodb_table  isam_table --where='id=10'  > /tmp/table_id.sql

注意这里 innodb_table 拥有id为10的数据 而 isam_table则没有

代码语言:javascript
复制
mysqldump -h127.0.0.1 -usystem -p123456  --single-transaction --set-gtid-purged=OFF  --databases test --tables innodb_table  isam_table --where='1 limit 1000000'  > /tmp/table_id.sql

导出前1000000行数据

2. 内容解析

2.1 版本信息

1_2.png
1_2.png

首先依然是mysqldump的版本信息 主机名信息

已经一些变量的设置

再次提醒 \/!123456\/ 不是注释

详情看上一节介绍

2.2 表的结构

2.png
2.png

接下来是表的信息

首先是如果表存在则删除表(DROP TABLE IF EXISTS)

之后建立表(CREATE TABLE)

2.3 表数据的备份

3_2.png
3_2.png

接下来是表数据的备份(Dumping data for table)

这里有提示只备份id=10的数据

首先锁定表不让其他进程写(LOCK TABLE WRITE)

然后使MySQL停止更新非唯一索引(ALTER TABLE DISABLE KEYS),这样能加快插入速度

之后将数据转换成insert语句(INSERT INTO)

之后重新建立丢失的索引(ALTER TABLE ENABLE KEYS)

最后释放锁(UNLOCK TABLES)

2.4 备份没有符合条件的表

5.png
5.png

可以看出虽然isam_table表没有符合条件的数据

但是还是会导出表结构 只是没有数据的导入

2.5 触发器的导出

6.png
6.png

可以看到isam_table表的触发器会一并导出

3. 总结

可以看出单独导出表的某行有如下内容

  • 删除表(如果存在)
  • 建表
  • 锁表
  • 禁用非唯一索引
  • 插入数据
  • 启用非唯一索引(重建索引)
  • 释放锁
  • 触发器(如果有)

不同于全库备份没有如下内容

  • 建立数据库(如果不存在)
  • 使用数据库

同时如果表中没有符合条件的行,表结构也是会导出的

同样不会导出存储过程和函数

今天的内容就到这里,欢迎查看

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 宅必备 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 备份语句
  • 2. 内容解析
    • 2.1 版本信息
      • 2.2 表的结构
        • 2.3 表数据的备份
          • 2.4 备份没有符合条件的表
            • 2.5 触发器的导出
            • 3. 总结
            相关产品与服务
            云数据库 SQL Server
            腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档