💡
原文英文,约1300词,阅读约需5分钟。
📝
内容提要
本文介绍了一种在Postgres中生成短的伪随机字母数字标识符public_id的方法,适用于事务或预订,便于用户读取和共享。通过对整数主键id进行模糊处理,生成5个字符的public_id,确保唯一性和难以猜测,尽管插入性能稍慢,但查找效率高。
🎯
关键要点
- 本文介绍了一种在Postgres中生成短的伪随机字母数字标识符public_id的方法。
- public_id适用于事务或预订,便于用户读取和共享。
- public_id是从整数主键id生成的,确保唯一性和难以猜测。
- public_id的设计目标是固定长度5个字符,且占用空间少于UUID。
- 使用PL/PgSQL函数对整数进行模糊处理,生成public_id。
- public_id的生成使用了异或运算和基于62的编码。
- 创建transactions表时,public_id列使用生成的身份列作为输入。
- public_id列具有唯一性和非空约束,确保数据的完整性。
- 插入数据时,使用public_id会使写入操作变慢约3.4倍。
- 与随机值相比,public_id保持可排序性,查找效率高。
❓
延伸问答
如何在Postgres中生成短的伪随机字母数字标识符?
可以通过对整数主键id进行模糊处理,使用PL/PgSQL函数生成5个字符的public_id。
public_id的主要用途是什么?
public_id适用于事务或预订,便于用户读取和共享。
使用public_id会对插入性能产生什么影响?
使用public_id会使写入操作变慢约3.4倍。
public_id是如何确保唯一性的?
public_id列具有唯一性和非空约束,确保数据的完整性。
public_id的设计目标是什么?
public_id的设计目标是固定长度5个字符,且占用空间少于UUID。
如何将整数转换为public_id?
通过使用异或运算和基于62的编码,将整数转换为public_id。
➡️