gpt4 book ai didi

带有 Postgresql 的 django UUIDField

转载 作者:行者123 更新时间:2023-11-29 11:49:55 25 4
gpt4 key购买 nike

与自制生成的唯一键相比,将 UUIDField 与 Django 和 Postgresql( native 数据类型)一起使用是否有优势?

目前我在我的模型上使用随机生成的字母数字 ID 字段,我想知道 Postgres 原生数据类型和 UUIDField 是否更适合这个目的,以及是否有理由切换。

我使用随机字母和数字生成 ID。它有 25 个字符长。我在上面放了一个 db_index 以便更快地检索。我不分片我的数据库。原因是有些模型出于商业目的不能有连续的id

最佳答案

切换到 UUID 将具有优势,尤其是当您有大量记录时。查找和插入应该快一点。由于 UUID 字段只有 128 位,因此每行将节省 9 个字节的存储空间。

但这并不意味着您自制的主键是个坏主意。离得很远。这是一个很好的方法,Instagram 使用了类似的方法。他们也碰巧在使用 Postgresq 和 DJango。他们的解决方案虽然仅使用 64 位,但也设法将有关对象创建时间的信息压缩到主键中。

它们的主要目的是分片,但即使对于非共享数据库也能很好地工作。只需为表示其分片信息的 13 位使用一些随机数。他们在上面的链接中有一个 sql 示例。

关于带有 Postgresql 的 django UUIDField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32655913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com