Hubert 'depesz' Lubaczewski:等待 PostgreSQL 18 - 添加 UUID 版本 7 生成函数。
💡
原文英文,约800词,阅读约需3分钟。
📝
内容提要
2024年12月11日,Masahiko Sawada提交了UUID版本7生成函数的补丁,该函数结合Unix时间戳和随机位,确保UUID的唯一性和可排序性。同时新增的uuid_extract_timestamp()函数可提取UUID生成时间,提升了UUID的可用性。
🎯
关键要点
- 2024年12月11日,Masahiko Sawada提交了UUID版本7生成函数的补丁。
- uuidv7() SQL函数结合Unix时间戳和随机位,确保UUID的唯一性和可排序性。
- UUID版本7的实现中,12位亚毫秒时间戳存储在时间戳后,确保在同一毫秒内的单调性。
- uuid_extract_timestamp()函数被扩展以支持UUID版本7,提升了UUID的可用性。
- 新增的uuidv4()别名用于保持与现有gen_random_uuid() SQL函数的一致性。
- UUID版本7允许生成可排序的UUID,解决了传统UUID不可排序的问题。
- uuid_extract_timestamp()函数可以提取UUID生成的时间,具有毫秒精度。
- 可以生成带有时间偏移的UUID,提供更灵活的时间管理功能。
❓
延伸问答
UUID版本7的生成函数是什么时候提交的?
UUID版本7的生成函数补丁于2024年12月11日提交。
UUID版本7如何确保唯一性和可排序性?
UUID版本7结合Unix时间戳和随机位,确保UUID的唯一性和可排序性。
uuid_extract_timestamp()函数的作用是什么?
uuid_extract_timestamp()函数可以提取UUID生成的时间,具有毫秒精度。
UUID版本7如何解决传统UUID不可排序的问题?
UUID版本7允许生成可排序的UUID,解决了传统UUID不可排序的问题。
如何生成带有时间偏移的UUID?
可以通过uuidv7()函数并传入时间偏移参数来生成带有时间偏移的UUID。
UUID版本7的时间戳存储方式是什么?
UUID版本7的12位亚毫秒时间戳存储在时间戳后,确保在同一毫秒内的单调性。
➡️