读写分离(Read/Write Splitting)是数据库架构中非常经典、也是最容易见效的性能优化手段之一。下面从原理、提升性能的机制、适用场景和注意事项几个角度系统说明。
核心思想:
写操作(INSERT / UPDATE / DELETE)走主库(Master)
读操作(SELECT)走从库(Slave / Replica)
主库和从库之间通过复制机制(如 MySQL 的 binlog 同步)保持数据一致。
写请求
应用 ─────────► 主库
读请求
应用 ─────────► 从库(多个)
✅ 结果:单库 CPU、IO、连接数压力大幅下降
✅ 读并发能力近似随从库数量线性提升
✅ 写性能更稳定,延迟更低
从库可以:
✅ 避免“为报表拖慢主业务”
✅ 读能力具备容灾属性
| 场景 | 效果 |
|---|---|
| 高并发 Web 读多写少 | 明显 |
| 报表 / 数据统计 | 非常明显 |
| 缓存穿透后的数据库读 | 明显 |
| 强事务写密集系统 | 有限 |
解决方式:
不适合:
读写分离通过将“读”和“写”分散到不同数据库实例,利用读多写少的业务特征,显著提升数据库并发能力和整体性能,但是以“最终一致性”为代价。
如果你愿意,我可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。