百万级MySQL的数据量怎么快速完成数据迁移

技术百万级MySQL的数据量怎么快速完成数据迁移这篇文章主要讲解了“百万级MySQL的数据量怎么快速完成数据迁移”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“百万级MyS

本文主要讲解“如何快速完成百万MySQL数据的数据迁移”。本文的解释简单明了,易学易懂。现在,请跟随边肖的思路,一起学习学习“如何快速完成百万MySQL数据的数据迁移”!

方案选择

mysqldump迁移

在正常开发中,我们经常使用数据备份迁移的方法,用mysqldump工具导出一个sql文件,然后将sql导入到新的数据库中,完成数据迁移。实验表明,通过mysqldump将一个百万级的数据库导出到一个sql文件需要几分钟的时间。导出的sql文件大小约为1G,然后通过scp命令将1G sql文件复制到另一台服务器需要几分钟。通过source命令将数据导入新服务器的数据库。我跑了一晚上没有导入数据,cpu满了。

脚本迁移

通过命令行直接操作数据库是一种方便的数据导出和导入方式,但在数据量较大时,这种方式往往很耗时,并且需要较高的服务器性能。如果数据迁移的时间要求不是很高,可以尝试编写脚本来迁移数据。虽然没有实际尝试,但我想过大概有两种脚本方案。

第一种方式,在迁移目标服务器上运行迁移脚本,远程连接到源数据服务器的数据库,通过设置查询条件分块读取源数据,读取后写入目标数据库。这种迁移方式的效率可能比较低,数据的导出和导入相当于一个同步的过程,需要等到读完再写。如果查询条件设计合理,也可以通过多线程启动多个迁移脚本,达到并行迁移的效果。

第二种方式,可以结合redis构建一个“生产和消费”迁移计划。作为数据生产者,源数据服务器可以在源数据服务器上运行多线程脚本,并行读取数据库中的数据,并将数据写入redis队列。作为使用者,目标服务器还在目标服务器上运行多线程脚本,远程连接到redis,并行读取redis队列中的数据,并将读取的数据写入目标数据库。与第一种方法相比,这种方法是一种异步方案。数据导入和数据导出可以同时进行。通过使用redis作为数据传输站,效率将大大提高。关注微信官方账号互联网架构师,回复关键词2T,获取最新架构视频。

Go语言可以用来编写迁移脚本,其原生并发性可以达到数据并行迁移的目的,提高迁移效率。

文件迁移

第一种迁移方案的效率太低,第二种迁移方案的编码成本相对较高。通过对网上找到的数据进行对比分析,最终选择了mysql的select data进入output file.txt,load data infeile file.txt进入table的命令,以导入导出文件的形式完成了百万数据的迁移。

迁移过程

导出源数据库中的数据文件

选择* from DC _ MP _ fansintooutfile '/data/fans . txt ';将数据文件复制到目标服务器

Zipfans.zip/data/fans.txtscpfans.ziproot@ip:/data/在目标数据库中导入文件。

unzip/data/fans . zippoladdatainfile '/data/fans . txt '进入tablewxa _ fans (id,appid,OpenID,unionid,@ dummy,created _ at,@ dummy,昵称,性别,avatar _ URL,@ dummy,@ d,根据以下

注意项

mysql安全项目设置

在mysql中执行load data infile和into outfile命令需要在mysql中打开secure_file_priv选项,这可以通过显示像“% secure%”这样的全局变量来完成;检查mysql是否打开了该选项。默认值为空表示不允许导入和导出命令。通过vim /etc/my.cnf修改mysql配置项,并将secure_file_priv的值设置为null:

[mysqld]secure_file_priv=' '可以通过命令导入和导出数据文件。

导出的数据表字段不对应。

在上面的示例中,数据从源数据库的dc_mp_fans表迁移到目标数据库的wxa_fans表。两个数据表的字段是:-dc_mp_fans。

百万级MySQL的数据量怎么快速完成数据迁移

wxa _ fans百万级MySQL的数据量怎么快速完成数据迁移

导入数据时,可以通过设置字段名来匹配目标字段的数据,也可以通过@dummy来丢弃目标字段不必要的数据。

感谢阅读。以上就是“如何快速迁移百万级MySQL的数据”的内容。看完这篇文章,相信你对如何快速迁移百万级MySQL的数据有了更深的理解,具体用法还需要实践验证。在这里,边肖将为您推送更多关于知识点的文章,敬请关注!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/101151.html

(0)

相关推荐

  • 通过抓包实现Python模拟登陆各网站的原理分析是怎样的

    技术通过抓包实现Python模拟登陆各网站的原理分析是怎样的这篇文章将为大家详细讲解有关通过抓包实现Python模拟登陆各网站的原理分析是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相

    攻略 2021年12月4日
  • 免费抖音自助下单平台,免费自助下单平台介绍!

    技术免费抖音自助下单平台,免费自助下单平台介绍!现在玩抖音的小伙伴们越来越多了,不过自己的发布的作品没有点赞和评论确实挺遗憾的,所以很多朋友想到了,给自己的抖音账号加粉,和作品点赞评论自助下单,这样的话可以带动抖音账号的

    测评 2021年10月21日
  • Ubuntu16.4如何安装Vivado Design Suite sdx2019.1

    技术Ubuntu16.4如何安装Vivado Design Suite sdx2019.1这篇文章主要为大家展示了“Ubuntu16.4如何安装Vivado Design Suite sdx2019.1”,内容简而易懂,

    攻略 2021年11月15日
  • [Lua语言基础]-2、变量、变量的类型、注释

    技术[Lua语言基础]-2、变量、变量的类型、注释 [Lua语言基础]-2、变量、变量的类型、注释变量:
    变量不需要在使用前声明,且不需要指定变量的类型(string,number等)变量都是弱类型,J

    礼包 2021年11月14日
  • 11.9

    技术11.9 11.9属性1.attr(name|properties|key,value|fn)概述设置或返回被选元素的属性值。参数name String属性名称properties Map
    参数

    礼包 2021年11月9日
  • Java方法

    技术Java方法 Java方法Java 方法
    什么是方法
    方法是什么System.out.println()是什么System是一个类,out是一个对象,println是方法方法是语句的集合,一起执行一

    礼包 2021年10月26日