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

相关推荐

  • 时间的问题总结

    技术时间的问题总结 时间的问题总结要点
    1、数据库时间,实体和Mybatis数据类型之间的对应关系
    2、前端传日期还是字符串
    3、时间格式化(用注解的方式如何去写,出参、入参如何格式化)
    4、大于、小于

    礼包 2021年12月14日
  • Spring Security中如何进行用户信息UserDetails入门

    技术Spring Security中如何进行用户信息UserDetails入门Spring Security中如何进行用户信息UserDetails入门,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更

    攻略 2021年10月27日
  • 出租车起步价多少公里,出租车的起步价是什么意思

    技术出租车起步价多少公里,出租车的起步价是什么意思打底起步价出租车起步价多少公里:指的是打车的一个基础价格,意思是上车后不管你走多远,哪怕100米都要给的这个价钱。
    全国部分城市出租车起步价:
    北京
    起步价:白天10元/

    生活 2021年10月25日
  • 数学期望和方差公式,正态分布的数学期望和方差推导

    技术数学期望和方差公式,正态分布的数学期望和方差推导求期望数学期望和方差公式:ξ
    期望:Eξ=x1p1+x2p2+……+xnpn
    方差:s? 方差公式:s?1/n[(x1-x)?(x2-x)?……+(xn-x)瞉
    注:x

    生活 2021年10月23日
  • Java 实战中精品养老院管理系统的实现流程是怎样的

    技术Java 实战中精品养老院管理系统的实现流程是怎样的这期内容当中小编将会给大家带来有关Java 实战中精品养老院管理系统的实现流程是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收

    攻略 2021年11月25日
  • 如何在Sublime3中设置自己的代码片段

    技术如何在Sublime3中设置自己的代码片段本篇内容主要讲解“如何在Sublime3中设置自己的代码片段”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何在Sublime3

    攻略 2021年11月2日