为rethinkDB创建自己的id的任何缺点?

时间:2016-01-11 21:30:44

标签: rethinkdb

为重新思考创建自己的ID而不是让重新思考创建它们有什么缺点吗?

我知道在其他一些系统中,id用于(auto)-sharding等,需要特定的id格式。

Rethink是否关心?

2 个答案:

答案 0 :(得分:1)

我通常自己创建ID,因为我可以轻松地get我想要的文档,或者知道它的某些属性。当让RethinkDB生成它时,你不能无处不在get一个文档,因为你不知道那个UUID。说,如果我自己生成UUID,我在某些情况下已经知道了ID。

其他方面是排序,如果我使用数字作为ID,我可以很容易地根据插入的顺序获得订单(虽然它在集群环境中有自己的问题)。使用自动UUID,您无法通过插入的顺序轻松排序,而无需额外的字段/二级索引。

根据https://www.rethinkdb.com/api/javascript/uuid/,UUIS只是标准的UUID,它不必是任何指定的id格式进行分片。

此问题包含有关RethinkDB如何生成UUID的一些信息:How does RethinkDB generate auto ids?

答案 1 :(得分:1)

检查this doc。

  

创建表格后,分割点不会自动更改,   这意味着如果主键分布不均匀,则分片   可能变得不平衡。但是,用户可以手动重新平衡分片   必要时,以及使用新的分片和重新配置表   复制设置。用户无法为分片设置分割点   手动

如果你使用某种UUID,你会没事的。如果您正在使用自动增量或其他非随机密钥之类的位,最终rethinkdb将在不平衡的分片之间分配记录,因此您需要手动重新平衡它。

相关问题