本文基于 TiDB 6.5 及 TRAE IDE v2.1 写作,所有代码均通过 TRAE 内置的「分布式 SQL 校验器」实时检查,可直接复制到生产环境运行。
01|传统分库分表到底卡在哪?
| 痛点维度 | 典型症状 | 线上真实案例 |
|---|---|---|
| 业务侵入 | 12 张表按用户 ID 分片,代码里硬编码 table_0~table_11 | 某电商大促时因取模错位导致订单双写,资损 300W |
| 热点瓶颈 | 哈希分片使 80% 流量打到 20% 分片 | 秒杀场景下单个 TiKV 节点 CPU 98%,其它节点 30% |
| 扩容成本 | MySQL→32 库×32 表→再拆成 64 库,停机 8 h | 金融核心系统不敢在交易日做扩容,只能凌晨 2 点扛 |
| 跨片查询 | 聚合 64 张表做实时报表,MySQL 只能走中间件 | 风控看板接口 RT 从 500 ms 涨到 8 s,被老板点名 |
一句话总结:分片键一旦选错,后期就是"推倒重来"。
02|TiDB 的"无感分片"架构
TiDB 把分片逻辑下沉到存储层,对应用呈现单一逻辑库: