原csdn地址https://blog.csdn.n|

蜗牛使劲冲

园龄:7年6个月粉丝:3关注:10

记一次迁移海量数据有感

最近公司因业务需要好几个迁移数据的任务落到我手里头,被几经摧残之后感觉还是把记录下来以备回忆~

背景:源sqlserver数据库设计的比较随便,数据比较混乱,百万级的量

  • 针对表迁移,表一一对应时需多创建个字段记录老表多主键id
  • 传入chunk-num参数,设置边界值,从而可以跑多进程
  • 查询尽量少连表,多map
  • 初次插入时采取批量插入,都放到一个大数组里面,最后提交事务
  • 写个while循环跑,sql大于id,id取每次循环出来的最大值,如果查不到了就跳出
  • 一次循环后就要unset掉刚刚的数据,不然会导致内存溢出
  • 增加个migrate_cycle表,记录每次跑脚本的参数
  • 去重如果觉得每次查sql慢可采用redis的setnx
  • 使用nohup php artisan sync:questionBookData 0 > /data/log/b0.log 2>&1 &多脚本同时运行时tail -f /data/log/*.log监控
  • 最后最重要的,多脚本有序运行记录下操作步骤,省脑子🧠

本文作者:蜗牛使劲冲

本文链接:https://www.cnblogs.com/warrenwt/p/18074545

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   蜗牛使劲冲  阅读(5)  评论(0编辑  收藏  举报  
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起