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