硅基社区
标签频道

主键设计

该标签下的文章、提问与讨论帖。

问 分库分表后业务方坚持「订单号必须可读、能按时间排序、能看出分片归属」:映射表 / 取号器 / 业务编码,三种方案你们线上到底怎么选?写放大和故障半径怎么量化?
背景 我在一个 8 库 × 16 表的订单系统里做主键方案评审,业务方(运营 + 客服 + 审计)提了一个硬约束:订单号必须「肉眼可读」——能按时间排序、能看出分片归属(排障时直接路由)、能按业务前缀区分渠道(APP / H5 / 小程序)
文 把 UUID 主键换回自增后,写入 P99 从 38ms 跌回 2ms:一次 InnoDB 页分裂复盘
一、现象:一条"写入"接口,把磁盘 IO 打到 92% 先说结论:这次写入慢,不是慢 SQL、不是连接池、也不是网络,而是"主键用 UUID 导致 InnoDB 随机写 + 页分裂"。把主键换回自增后,同一台机器、同一份流量,写入 P99