为什么自动增量模式在 MongoDB 中扩展时不好?

Ole*_*leg 4 scalability auto-increment mongodb

我试图理解为什么自动增量模式在缩放时不好

\n\n

我也读过这篇文章。里面有这样一句话:

\n\n
    \n
  • 相反,您需要使用正确的 UUID 方法来确保您不会遇到竞争条件,并且 ID 在集群中确实是唯一的。
  • \n
\n\n

我正在尝试找出_id分片重复情况的确切情况。

\n\n

还有一个问题:非主键自增怎么样?安全吗?

\n\n

非常感谢!

\n

Pau*_*ter 5

为了保证自增值唯一,ID创建必须发生在单个主机上的单个线程上(即使使用多个线程,ID创建点也必须阻塞其他线程)。因此,在包含 100 台服务器的集群中,必须在 100 台服务器中的 1 台服务器上的 1 个线程上创建 ID。这不仅仅是一个性能瓶颈,创建 2 个自动增量 ID 可能会互相阻塞,这就是您引用的引文中指出的竞争条件。

需要注意的是,像Oracle和SQL Server这样的事务型RDBMS系统已经解决了竞争条件问题,但没有解决性能瓶颈问题。

所以:不,如果您预计需要扩展系统,请不要在非主键中使用自动增量。