2012-04-22 52 views
0

传统的关系数据库会有一个像USER_ID这样的字段,通常是一个自动递增的数字。 MongoDB中有一个文件编号,看起来像下面这样在MongoDB中,我们可以放弃传统的用户ID吗?

4f90e98277f6426c0a000001

这可完全替代USER_ID?我想我基本上要求的是,就搜索而言,插入和索引与自动递增数字一样快?如果

+0

“如果”..............................? – Ashe 2012-04-22 12:39:34

回答

2

由于主键是ObjectID而不是整数,因此您不大可能会遇到性能问题。你会更快受到数据大小的影响。我不会为此担心。

对象ID有以下几个优点:

  • 它是全球唯一的(你可以创建应用程序中的新的ID没有咨询数据库);
  • 分片支持(不需要在分片之间同步自动递增序列);
  • 随着时间的推移单调递增(并且包括实际的时间戳,所以如果您只想按插入时间排序,则不必单独使用created_at字段);
+0

不仅单调地随着时间增加,而且包括实际的时间戳(有提取它的函数)。 – Thilo 2012-04-22 23:58:06

+0

是的,我认为这是暗示:) – 2012-04-23 00:09:31

+0

是否可以在面向公众的api中返回Object id?我猜你可以告诉的最多的是我使用MongoDb和一些机器特定的信息。 – 2012-08-13 23:01:15

相关问题