在使用Mysql数据库的过程中,经常需要使用到备份和恢复数据库,最简单便捷的方法便是通过导出SQL数据文件和导入SQL数据文件来完成备份和恢复,但是随着项目的增长,数据量越来越大,每次恢复就成了一件很头疼的事情。

当我最近一次拉下项目中的5GB大小的数据库到本地进行恢复时,竟然需要耗时40-50分钟,想着日后的数据扩增,数据量越来越大,恢复成本也越来越高,于是便查阅了一些资料,可以通过以下设置来提高你的恢复效率.

1.更改备份参数

首先我们需要在备份数据库的时候,可以通过更改参数来提高我们的恢复效率.

mysqldump --extended-insert

mysqldump的--extended-insert参数表示批量插入,会将多个insert语句合并成一个语句,与没有开启-extended-insert的备份导入效率相差3-4倍.

使用--extended-insert=false导出的sql文件数据是这样的,每行一条insert语句,执行效率非常低下

使用--extended-insert=true导出的表如下图这种,一个很长的insert语句,会进行批量插入。

2.调整MYSQL快速插入参数

如果你的数据库储存引擎是MYISAM参数的话,可以将此参数设置到512M或256M,MyISAM会使用一种特殊的树状缓存来做出更快的批量插入。

该值默认是8M = 8388608byte

查看插入缓冲区大小

SHOW VARIABLES LIKE '%bulk%';

设置插入缓冲区大小(全局)

SET GLOBAL bulk_insert_buffer_size =1024*1024*512;

设置插入缓冲区大小(session)

SET bulk_insert_buffer_size =1024*1024*256;

如果需要设置Mysql重新启动时,依然保留该值,需要将这段配置添加了my.cnf

[mysqld]

bulk_insert_buffer_size = 256M

3.关闭检查项

对于Innodb引擎中,我们可以关闭一些系统检查项来实现更快的插入的方案.

//关闭自动提交

SET autocommit=0;

//关闭唯一检查

set unique_checks = 0;

//关闭外键检查

SET foreign_key_checks=0;

//备份的时候开启--extended-insert参数

4.实践

做好以上优化后,你的Mysql恢复效率瞬间会提升一个档次,在没做以上参数优化时,每次恢复数据库都需要耗费40分钟的时间,设置后只需要16分钟左右,我的数据库文件容量在5GB左右.

以上就这些,途观有更好的方案和建议的话,希望各位同学一起探讨,Happy Coding。

mysql超大sql怎么还原_关于Mysql 大型SQL文件快速恢复方案相关推荐

  1. mysql超大表处理方式是_第29问:MySQL 的复制心跳说它不想跳了

    问题 最近年底,大家的数据库经常跑批量大事务,会发现复制突然断开,报错"心跳与本地信息不兼容": 会是什么原因? 实验 我们先来复现一下,再进行分析. 宽油,做一对主从数据库: 我 ...

  2. mysql的sql执行原理图_性能测试MySQL之SQL运行原理

    一,MySQL运行原理 两个一样的图 1,SQL语句执行的过程详细说明 如上图所示,当向MySQL发送一个请求的时候,MySQL到底做了什么: a, 客户端发送一条查询给服务器. b, 服务器先检查查 ...

  3. mysql sql并列排名_教你用SQL实现统计排名

    前言: 在某些应用场景中,我们经常会遇到一些排名的问题,比如按成绩或年龄排名.排名也有多种排名方式,如直接排名.分组排名,排名有间隔或排名无间隔等等,这篇文章将总结几种MySQL中常见的排名问题. 创 ...

  4. mysql 自动化运维工具_部署MySQL自动化运维工具inception+archer

    *************************************************************************** 部署MySQL自动化运维工具inception+ ...

  5. mysql数据库后台命令备份_使用MySQL命令行备份及恢复数据库

    使用MySQL命令行备份及恢复数据库 下文对使用MySQL命令行备份及恢复数据库的方法及步骤进行了详细的介绍,如果您对MySQL命令行方面感兴趣的话,不妨一看. AD: 使用MySQL命令行,可以实现 ...

  6. mysql 全库 备份 恢复_从MySQL全库备份中恢复某个库和某张表

    在Mysqldump官方工具中,如何只恢复某个库呢? 全库备份 [root@HE1 ~]# mysqldump -uroot -p --single-transaction -A --master-d ...

  7. mysql和python的关系_八MySQL与Python

    <1>数据库介绍 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库, 每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据. ...

  8. mac下安装mysql 5.7.11卡住_【mysql】Mac下安装mysql5.7 完整步骤,大坑已解决

    最近使用Mac系统,准备搭建一套本地web服务器环境.因为Mac系统自带PHP和apach,但是没有自带mysql,所以要手动去安装mysql,本次安装mysql最新版5.7.17. 1.官网下载 点 ...

  9. MySQL数据库test连接语句_【MySQL数据库开发之二】MySQL 基础语句的书写与操作!...

    本篇Himi简单介绍一些MySQL数据库的基础操作: 注:mysql 语句对大小写不敏感,语句以分号";"标识语句结束: 1.   首先使用两个简单的查询语句: 查询当前版本:se ...

最新文章

  1. usaco Feed Ratios
  2. Fedora 从 15.0 开始将修改以太网卡命名规则
  3. 一个页面区分管理者和普通用户如何设计_产品经理要做的操作权限/数据权限设计...
  4. 阿里设计师出品!B端产品文案指南
  5. c语言中switch语句流程图_C语言:C语言保留字(关键字)
  6. KindEditor 4 输入框限定字数
  7. Android 小項目之---Iphone拖动图片特效 (附源码)
  8. kali linux 桌面消失_kalilinux系统设置不见了的解决方案
  9. java实现语音聊天_java 语音聊天核心代码
  10. java Http post请求发送json字符串
  11. 验证DG最大性能模式下使用ARCH/LGWR及STANDBY LOG的不同情况
  12. vivo手机点击android,了解Vivo手机几个小技巧,让您的手机变得更好用
  13. 2020年ROS机器人操作系统用户官方调查
  14. Opencv-cvtColor
  15. 网络笔记--接入网及网络运营商
  16. Composer中的ThingWorx模型定义—建模
  17. linux解压该文件,linux上解压缩文件
  18. 吴恩达访谈 - Geoffrey Hinton(个人不懂或是想了解的名词)
  19. python:小鱼的航程
  20. 有什么数据恢复软件好?

热门文章

  1. 【转】Glut处理鼠标事件
  2. Js 获取当前页面的高度
  3. 全国计算机二级c 笔记,[IT认证]全国计算机等级考试二级C语言笔记.doc
  4. 信息奥赛一本通(1119:矩阵交换行)
  5. Addition Chains(信息学奥赛一本通-T1443)
  6. 01迷宫(洛谷-P1141)
  7. 信息学奥赛C++语言: 统计闰年
  8. 信息学奥赛一本通C++语言——1027:输出浮点数
  9. python现在的时间是几点_Python 的日期和时间处理
  10. 近年NOIP普及组复赛题目的简单讲解