在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

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

133次阅读
没有评论

共计 1939 个字符,预计需要花费 5 分钟才能阅读完成。

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

方案选择

mysqldump 迁移

平常开发中,我们比较经常使用的数据备份迁移方式是用 mysqldump 工具导出一个 sql 文件,再在新数据库中导入 sql 来完成数据迁移。试验发现,通过 mysqldump 导出百万级量的数据库成一个 sql 文件,大概耗时几分钟,导出的 sql 文件大小在 1G 左右,然后再把这个 1G 的 sql 文件通过 scp 命令复制到另一台服务器,大概也需要耗时几分钟。在新服务器的数据库中通过 source 命令来导入数据,我跑了一晚上都没有把数据导入进来,cpu 跑满。

脚本迁移

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

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

第二种方式,可以结合 redis 搭建一个“生产 + 消费”的迁移方案。源数据服务器可以作为数据生产者,在源数据服务器上跑一个多线程脚本,并行读取数据库里面的数据,并把数据写入到 redis 队列。目标服务器作为一个消费者,在目标服务器上也跑一个多线程脚本,远程连接 redis,并行读取 redis 队列里面的数据,并把读取到的数据写入到目标数据库。这种方式相对于第一种方式,是一种异步方案,数据导入和数据导出可以同时进行,通过 redis 做数据的中转站,效率会有较大的提升。关注公众号互联网架构师,回复关键字 2T,获取最新架构视频

可以使用 go 语言来写迁移脚本,利用其原生的并发特性,可以达到并行迁移数据的目的,提升迁移效率。

文件迁移

第一种迁移方案效率太低,第二种迁移方案编码代价较高,通过对比和在网上找的资料分析,我最终选择了通过 mysql 的 select data into  outfile file.txt、load data infile file.txt into  table 的命令,以导入导出文件的形式完成了百万级数据的迁移。

迁移过程

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

select * from dc_mp_fans into outfile  /data/fans.txt

复制数据文件到目标服务器

zip fans.zip /data/fans.txt scp fans.zip root@ip:/data/

在目标数据库导入文件

unzip /data/fans.zip load data infile  /data/fans.txt  into table wxa_fans(id,appid,openid,unionid,@dummy,created_at,@dummy,nickname,gender,avatar_url,@dummy,@d

按照这么几个步骤操作,几分钟内就完成了一个百万级数据表的跨服务器迁移工作。

注意项

mysql 安全项设置

在 mysql 执行 load data infile 和 into outfile 命令都需要在 mysql 开启了 secure_file_priv 选项,  可以通过 show global variables like   %secure% 查看 mysql 是否开启了此选项,默认值 Null 标识不允许执行导入导出命令。通过 vim  /etc/my.cnf 修改 mysql 配置项,将 secure_file_priv 的值设置为空:

[mysqld] secure_file_priv=

则可通过命令导入导出数据文件。

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

上面示例的从源数据库的 dc_mp_fans 表迁移数据到目标数据库的 wxa_fans 表,两个数据表的字段分别为:- dc_mp_fans

wxa_fans

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

感谢各位的阅读,以上就是“百万级 MySQL 的数据量怎么快速完成数据迁移”的内容了,经过本文的学习后,相信大家对百万级 MySQL 的数据量怎么快速完成数据迁移这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-19发表,共计1939字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 韩国特黄毛片一级毛片免费 | 国产情侣自拍网站 | 成人免费观看视频高清视频 | 伊人无码高清 | 精品国产一区二区三区免费 | 无码国产偷倩在线播放老年人 | 欧美性猛交99久久久久99 | 黄色毛片视频免费 | 51国产偷自视频区视频 | 男女18禁啪啪无遮挡激烈网站 | 国产精品久久久久久久久鸭 | 无码人妻一区二区三区免费看 | 91在线观看网站 | 亚洲一区精品伊人久久 | 国产欧美精品区一区二区三区 | 毛片免费看 | 日韩电影免费在线观看中文字幕 | 狠狠热精品免费观看 | 欧美啪啪网址 | 日韩成人在线网站 | 国产90后美女露脸在线观看 | 亚洲av无码国产精品麻豆天美 | 国产中文字幕久久 | 大色综合色综合网站 | 永久免费无码网站在线观看 | 亚洲精品96欧美一区二区 | 色8激情欧美成人久久综合电影 | 亚洲av在线观看 | 免费看a级黄色片 | 台湾swag在线视频 | 狠狠干伊人 | 成人午夜福利院在线观看 | 久久国产成人精品av | 欧美日韩 在线播放 | 久久丫精品国产 | 91佛爷美容院女老板在线播放 | 有色视频在线观看 | 国产极品白嫩精品 | 人妻无码第一区二区三区 | 欧美成人免费高清二区三区 | 国产午夜亚洲精品国产 |