线上业务系统的迁移思路【MySQL】
概论
在日常开发场景中,迁移数据库是非常常见的。但是线上业务系统进行迁移,并不是见一个简单的问题,必须考虑到迁移过程中线上系统的可用性、性能等。本文针对MySQL对迁移策略进行讨论。
实现方法
思路一:binlog
MySQL的binlog日志是一种二进制格式的日志,binlog记录所有的DDL和DML语句,以Event的形式记录,同时记录语句的执行时间。其主要的应用场景为:
- 数据恢复:通过日志数据恢复因为数据库宕机等不可抗力产生的数据丢失。
- 主从复制:多机备份,可以监听binlog日志,同步写库的更改。
这么一看,binlog简直完美符合数据迁移的场景。Mysql中的数据在大批量导出的时候会容易阻塞,导致数据库慢查询,然后我们的优化思路是在写数据到数据库的时候同时监听数据库binlog到其他库中。
好处:
- 不会因为数据导出的慢查询
- 监听binlog的方式可以使得代码解耦
思路二:双写
采用在写入数据库的时候再同时写入新的库,如果对性能要求比较高,可以将写入操作作为移步任务添加到一个线程安全队列。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)