【问题标题】:Facebook user_id as MongoDB BSON ObjectId?Facebook user_id 作为 MongoDB BSON ObjectId?
【发布时间】:2011-06-05 22:36:59
【问题描述】:

我正在使用 Sinatra 和 Redis 重建 Lovers on Facebook。我喜欢 Redis,因为它没有长(12 字节)BSON ObjectIds,而且我正在为每个用户存储 Facebook 用户 ID 集。这些集合是 requests_sent、requests_received 和关系,它们都包含 Facebook 用户 ID。

我正在考虑切换到 MongoDB,因为我想使用它的地理空间索引。如果我这样做,我想使用 FB 用户 ID 作为 _id 字段,因为我希望集合很小并且我希望 JSON 响应很小。但是,使用 BSON ObjectId 是否比仅使用整数 (fb user_id) 更好(对 MongoDB 更有效)?

【问题讨论】:

  • 也试过在 mongo 论坛上提问?
  • 我也有类似的情况。我有大量带有多个索引和大量插入/更新插入负载的小文档。我目前正在尝试减小索引的大小以提高性能,并且(在我进行实验之前)我想知道我是否走在正确的道路上......

标签: facebook indexing mongodb bson


【解决方案1】:

据我所知,除了在某些情况下没有重大的效率差异,例如按日期排序(因为 ObjectId 包含日期时间等)

例如,您将无法通过 _id 简单地进行订购,您还将失去sharding and distribution 的好处。除此之外,虽然我仍然会亲自使用 ObjectId ...只要 int 是 unquie(当然)...你应该没问题.

由于 _id 总是在查询中“返回”我想你会节省一点时间和数据传输(一点点)。

如果您愿意,您甚至可以将您的 _id 设为一个数组,并且所有索引都会很好地看到这个answer(并不是我在大多数情况下都一定会推荐。)

另见:Optimizing Object IDs

【讨论】:

    猜你喜欢
    • 2012-03-12
    • 1970-01-01
    • 2016-06-18
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多