【问题标题】:PostgreSQL: Generate custom MongoDB-ObjectID-like UUID's as primary keyPostgreSQL:生成自定义的类似 MongoDB-ObjectID 的 UUID 作为主键
【发布时间】:2015-11-06 22:13:09
【问题描述】:

我已经阅读了很多关于在 postgres 中实现 UUID 的内容,因为在某些情况下我需要能够在将 ID 发送到数据库之前生成我的 ID。我所做的很多阅读都警告过 UUID 对性能的影响。他们提到了非顺序主键会如何严重影响性能。

UUID v4 没有用,因为使用所有随机数来计算 id 是非连续的,因为它是随机的。我想使用 v1,但在 id 中包含 MAC 地址似乎没有必要且不安全。我想要做的是生成一个 MongoDB ObjectID 样式的 UUID。我希望它基本上由时间戳和表名组成,以便在对 ID 进行排序时,按顺序排序。

有没有办法在那里我可以生成这个自定义 UUID 并让 Postgres 根据 uuid 上的时间戳以顺序方式存储它们?

【问题讨论】:

  • 他们提到非顺序主键会如何严重影响性能。。什么?嗯?请引用。 URL、文章名称等。UUID 的主要问题是它的宽度为 128 字节,因此您的索引更大且查询速度更慢。
  • 哦,您打算使用 uuid 而不是时间戳,或者依赖嵌入在 v1 uuid 中的时间戳。不要那样做。也存储一个时间戳。

标签: mongodb postgresql uuid objectid


【解决方案1】:

也许这会有所帮助: 按照 MongoDB 语义在 PostGres 中创建 ObjectId。与下面链接的 Instagram 方法非常相似。 http://docs.mongodb.org/manual/reference/object-id/http://instagram-engineering.tumblr.com/post/10853187575/sharding-ids-at-instagram https://gist.github.com/jamarparris/6100413

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    • 2015-08-14
    • 2018-02-16
    相关资源
    最近更新 更多