贝利信息

SQL 雪花 ID 适合做主键吗?

日期:2026-01-18 00:00 / 作者:舞夢輝影
雪花ID可作主键但非通用最优解,适合分布式部署、高并发零冲突写入、需时间排序及兼容BIGINT场景;在MySQL中易致页分裂、缓存命中率低、运维风险高等问题。

雪花 ID 可以做主键,但是否“适合”,取决于你的具体场景——它不是通用最优解,而是权衡后的选择。

适合用雪花 ID 做主键的典型场景

当系统明确面临以下问题时,雪花 ID 是合理甚至推荐的选择:

不适合用雪花 ID 做主键的关键风险

在 MySQL(尤其是 InnoDB)中,它会带来隐性但显著的性能损耗,主要源于聚簇索引特性:

比直接用雪花 ID 更平衡的做法

不必非黑即白。实际工程中常采用折中策略:

落地前必须检查的几件事

如果决定用雪花 ID 当主键,请确认以下细节已覆盖: