外观
一句话答案
主库写从库读,通过 binlog 同步;核心问题是主从延迟导致读旧数据,解决:关键查询走主库/半同步复制。
核心要点
核心问题: 主从延迟导致读到旧数据
解决方案: 强制走主库(关键查询) / 延迟检测(判断同步进度) / 半同步复制(至少一个从库确认)
追问与易错
追问方向:
- 主从延迟导致读旧数据怎么办?
- 写后立即读怎么保证一致?
- 读写分离中间件有哪些?
易错点:
- ❌ 读写分离就解决了性能——延迟问题需处理
- ❌ 所有读请求都走从库——关键查询应走主库
💡 记忆锚点
读写分离像连锁店模式:总店(主库)负责进货上新(写),分店(从库)负责卖货展示(读)。问题是总店上新后分店铺货有延迟,顾客可能看到旧款——关键查询(写后立即读)必须直接去总店问,或者用半同步保证至少一家分店铺完货才算上新成功。