数据库:分库分表与读写分离
读写分离的延迟问题,分片键选择,垂直/水平拆分与分布式 ID、跨分片查询。
本节你将能
说清数据量膨胀时的拆分思路与坑点,尤其是分片键与跨分片。
核心要点
- 读写分离:主写从读,缓解读压力;牺牲强一致(主从延迟),读多写少用。
- 垂直拆分:按业务/字段拆(大字段、冷字段独立),降单行宽度。
- 水平拆分:按分片键(用户 id/订单 id)取模或范围路由到不同表/库。
- 分片键选择:高基、无热点、查询常用;避免跨分片(否则广播查询)。
- 分布式 ID:雪花算法(时间+机器+序列),避免自增 id 在分片下冲突与暴露量。
面试连招
常被追问:主从延迟怎么处理?分片键选错如何补救?跨分片分页/聚合怎么做?
常见坑
分片键选错导致全分片扫描;只读从库读到未同步数据;分布式事务跨库难保证。