克里斯托夫·佩图斯:UUID与序列号作为主键的比较
💡
原文英文,约600词,阅读约需3分钟。
📝
内容提要
UUID或bigint作为主键的问题经常被提出,实际上有两个不同的问题:“随机键”和“顺序键”,以及“64位”和“128位”。如果不需要128位的随机性,可以考虑使用64位值,即使它是随机的,或者是16位序列加48位随机数。
🎯
关键要点
- UUID和bigint作为主键的问题涉及随机键和顺序键的选择。
- 随机键具有自哈希特性,能提高安全性,适合在URL或网页中暴露。
- 顺序键生成速度更快,与B树索引的交互更好,性能通常优于随机键。
- 顺序键不一定是bigint,某些UUID实现可以具有高序列位和低随机位。
- bigint在PostgreSQL中的性能优于128位值,因其存储和处理方式更高效。
- 如果不需要UUID提供的128位随机性,可以考虑使用64位值或16位序列加48位随机数。
➡️