百万级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)

相关推荐

  • SpringBoot JPA sort多属性排序的示例分析

    技术SpringBoot JPA sort多属性排序的示例分析这篇文章主要介绍SpringBoot JPA sort多属性排序的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!SpringB

    攻略 2021年11月21日
  • 怎么修改MySQL的SQL_MODE

    技术怎么修改MySQL的SQL_MODE这篇文章主要讲解了“怎么修改MySQL的SQL_MODE”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么修改MySQL的SQL_

    攻略 2021年11月5日
  • 二寸照片像素,2寸的图片要用多少像素来表示?

    技术二寸照片像素,2寸的图片要用多少像素来表示?相片常用尺寸知识 要达到满意的数码扩印效果二寸照片像素:
    照片规格(英寸) (厘米) (像素) 数码相机类型 1寸 2.5*3.5cm 413*295
    身份证大头照

    生活 2021年10月29日
  • 如何理解DIV中display和visibility属性差别

    技术如何理解DIV中display和visibility属性差别如何理解DIV中display和visibility属性差别,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到

    攻略 2021年11月17日
  • spring事件机制实例(spring事件机制详解)

    技术Spring的事件机制知识点有哪些这篇文章主要讲解了“Spring的事件机制知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring的事件机制知识点有哪

    攻略 2021年12月20日
  • Python与C++引用的示例分析

    技术Python与C++引用的示例分析本篇文章给大家分享的是有关Python与C++引用的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在用Pyth

    攻略 2021年10月25日