IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL一次大表迁移的优化 -> 正文阅读

[大数据]MySQL一次大表迁移的优化

一.问题描述

??今天一个做Java开发的哥们向我咨询了一个问题。

??他想把一个300多万条数据数据的表迁移到本地测试环境,他处理的方案是 先通过mysqldump命令将该表做一个备份,然后传输到测试环境,最后执行备份文件。

??理想很丰满,现实很骨感,300多万的数据不大,备份下来也就2.5GB左右的sql文件,可是在测试环境居然执行了12个小时才执行了一半,无奈只能终止。

??于是这个哥们开始咨询我,希望我能提供一个快速一点的方法。

二. 解决方案

??既然是批量数据的迁移,那就肯定想到调整参数和索引相关,于是从这两个方向着手。

2.1 调整索引

将 dump.sql文件中除id列主键索引外的所有索引都去掉,数据同步完成后再创建索引。

2.2 调整参数

我调整的参数如下:

-- 默认值是128M,测试机器是16GB内存,可以调整为10G,缓存更多数据
innodb_buffer_pool_size=10G

-- 默认值是50M,尽量调大,减少checkpoint
innodb_log_file_size=4G

-- 每次事务提交,都写入os cache 缓存,可能1秒将cache里面数据写入磁盘,减少写磁盘
innodb_flush_log_at_trx_commit=2

-- 设置为0的时候,持久化操作留给文件系统 ,减少写磁盘
sync_binlog=0

-- 关闭binlog,减少写磁盘
skip-log-bin

2.3 重新导入数据

重新导入数据,速度快了很多,不到半个小时,300多万的数据都导入成功了。

2.4 重建索引

因为表有十多个索引,我放到一个文件里面批量执行,一个索引预估20分钟左右,索引预估需要3个小时左右,看来索引才是大头,导入数据其实没那么麻烦。
image.png

2.5 恢复mysql配置文件

最后被忘记将配置文件进行恢复,2.2步骤设置的,容易丢数据,还是双1来的安心。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-11-27 09:57:56  更:2021-11-27 09:58:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:01:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码