今天看啥  ›  专栏  ›  程序员鱼皮

给你10亿数据,如何做迁移?

程序员鱼皮  · 公众号  ·  · 2025-03-10 13:31
    

文章预览

前言 某次金融系统迁移项目中,原计划8小时完成的用户数据同步迟迟未能完成。 24小时后监控警报显示:由于全表扫描 SELECT * FROM users 导致源库CPU几乎熔毁,业务系统被迫停机8小时。 这让我深刻领悟到—— 10亿条数据不能用蛮力搬运,得用巧劲儿递接 ! 今天这篇文章,跟大家一起聊聊10亿条数据,如何做迁移,希望对你会有所帮助。 一、分而治之 若把数据迁移比作吃蛋糕,没人能一口吞下整个十层蛋糕; 必须切成小块细嚼慢咽。 避坑案例:线程池滥用引发的血案 某团队用100个线程并发插入新库,结果目标库死锁频发。 最后发现是主键冲突导致—— 批处理必须兼顾顺序和扰动 。 分页迁移模板代码 : long  maxId =  0 ;   int  batchSize =  1000 ;   while  ( true ) {       List users = jdbcTemplate.query(            "SELECT * FROM users WHERE id > ? ORDER BY id LIMIT ?" , ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览