---
title: MySQL分库分表与中间件实践
keywords:
- 分库分表
- ShardingSphere
- MyCAT
- 分片键
- 路由策略
- 全局唯一ID
- 雪花算法
- 跨分片事务
- 读写分离
- 验证
description: 基于中间件实施分库分表与读写分离,设计分片键与路由策略、全局ID与跨分片事务处理,并提供验证与回归方法。
date: 2025-11-25
tags:
- MyCAT
- ShardingSphere
- 全局唯一ID
- 分库分表
- 分片键
- 后端
- 技术
- 数据库
- 读写分离
- 跨分片事务
- 路由策略
- 雪花算法
- 验证
categories:
- 文章资讯
- 技术教程
---
概述
随着数据与并发增长,单库单表的性能与容量受限。分库分表通过中间件实现透明路由与聚合查询。本文提供分片设计、ID策略与事务处理的实践清单。
分片与路由(已验证)
- 分片键选择:高选择性、写入均衡,避免热点(如
user_id); - 路由策略:范围/取模/一致性哈希;
- 广播与绑定表:小型字典表广播,强关联表按同分片路由。
全局唯一ID
- 雪花算法(Snowflake):时间+机器+序列;
- DB/Segment 号段:批量分配减少中心压力;
- 保证单调与跨分片唯一。
跨分片事务
- 避免两阶段提交;以最终一致性与补偿替代;
- 事务边界以内尽量单分片;跨分片采用事件/Outbox。
读写分离
- 主写从读,结合复制延迟采用强读策略(写后短期读主);
- 连接池与路由隔离,防止污染。
聚合与分页
- 分片分页与聚合需要并行查询与合并;
- 使用中间件的并行执行与排序合并能力。
验证与监控
- 指标:路由命中率、跨分片查询比例、复制延迟与错误率;
- 回归:发布前后 QPS、P95/P99 与热点分布。
常见误区
- 分片键选择不当导致热点与跨分片查询激增;
- 无全局ID造成跨分片唯一性问题;
- 跨分片强事务导致性能与复杂度剧增。
结语
以合理的分片键与路由、全局ID与最终一致性事务治理,并结合读写分离与并行聚合,分库分表可在增长阶段保持稳定与可扩展。

发表评论 取消回复