Mongo objectid 和 MD5 哈希函数,哪个更容易发生冲突,现在我正在建一个网站,并寻找一种方法来索引我的产品。
提前致谢。
MongoDB 的 ObjectId 不太可能发生冲突。它包含一个计数器、一个随机数、进程 ID 等。MD5 哈希取决于输入的值。如果您传递两个具有相同值的输入,则哈希值将相同。
我应该更多地了解您如何散列您的产品。如果您确定您的产品价值不会相同,那么您可以同时使用两者。但我会使用 ObjectId,因为您根本不需要担心产品值和散列。ObjectId 的大小也小于 MD5 哈希的大小,这对于索引来说更好。
如果您的产品模型与现实世界的产品有某种关系,那么有现有的方法来索引它们 - 选择文章编号或 EAN(IAN)。它们可以是 mysql 的自然自动增量 ID 的补充。UUID 有优点(主要用于分布式数据库)和缺点 - 阅读https://tomharrisonjr.com/uuid-or-guid-as-primary-keys-be-careful-7b2aa3dcb439