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

相关推荐

  • 技盖至此乎,做事计划周密的例子50字

    技术技盖至此乎,做事计划周密的例子50字蜀相诸葛亮,做事谨慎,善于谋划。有评语“诸葛一生唯谨慎”。隆中对为刘备谋划先取荆州,后去益州,进则争取天下,退则偏霸西蜀。,皆有好处。庖丁切牛肉切了那么多年,是小心,努力;终于在文

    生活 2021年10月20日
  • cucumber本质以及实例是怎么样的

    技术cucumber本质以及实例是怎么样的本篇文章为大家展示了cucumber本质以及实例是怎么样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。名词解释FeatureFeatu

    攻略 2021年10月19日
  • 单数第三人称,英语语法哪些词是第三人称单数

    技术单数第三人称,英语语法哪些词是第三人称单数1.人称代词 he, she, it 属于第三人称单数单数第三人称。eg.How old is he?2.不定代词everyone, something, nobody, e

    生活 2021年10月22日
  • jdbc使用过程中常见的问题(简述6步实现jdbc的操作)

    技术如何进行JDBC的实例分析如何进行JDBC的实例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。JDBC例子1,首先在配置文件(sys

    攻略 2021年12月18日
  • RAC_UDEV的99-oracle-asmdevices.rules如何配置

    技术RAC_UDEV的99-oracle-asmdevices.rules如何配置这篇文章主要介绍了RAC_UDEV的99-oracle-asmdevices.rules如何配置,具有一定借鉴价值,感兴趣的朋友可以参考下

    攻略 2021年11月11日
  • C#操作MongoDb插入更新和删除的方法是什么

    技术C#操作MongoDb插入更新和删除的方法是什么C#操作MongoDb插入更新和删除的方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所

    攻略 2021年11月3日