示例成品 · 平台演示,按左边这组点选真跑出来的
【分库分表方案:亿级订单表水平拆分】
一、现状
单表 orders 已达约 3 亿行,列表查询和写入均明显变慢,单机磁盘接近上限。
二、拆分策略
- 分片键:user_id(保证同一用户订单落同库,"我的订单"查询不跨库)
- 分片算法:user_id % 16 得到 16 个库,每库 8 张表,共 128 张分表
- 分表命名:orders_0000 ~ orders_0127
三、配套设计
1. 全局主键改用雪花算法(Snowflake),避免各分表自增ID冲突
2. 跨片统计(如后台按时间汇总)走ES或数仓,不直接打分库
3. 迁移期先双写过渡,历史数据按 user_id 灰度搬迁
四、注意事项
- 分片键一旦确定极难更改,务必选查询最高频的维度
- 涉及多用户的运营报表不要走分库,另建汇总表承接
点左边「开工 · 直接出成品」,出一份你自己的版本(文字免费)