Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用自定义id值_Java_Mongodb - Fatal编程技术网

Java 使用自定义id值

Java 使用自定义id值,java,mongodb,Java,Mongodb,我有一个用户数据库,所有用户都有一个唯一的ID(Java UUID),以区分他们,因为其他数据(firstname、IP和lastname)可能包含重复项。将_id设置为唯一id是否是一个好主意,因为这样可以避免创建和索引另一个字段以及使用无用的_id字段。这是一个有争议的话题,具体细节取决于数据库引擎。我将更笼统地说,假设数据库引擎可能在以后某个时间点发生更改。为了帮助您做出决定,以下是使用UUID作为行ID的一些优点和缺点: 优点: 在数据不同但性质相似的表中是唯一的 使从一个数据库引擎到

我有一个用户数据库,所有用户都有一个唯一的ID(Java UUID),以区分他们,因为其他数据(firstname、IP和lastname)可能包含重复项。将_id设置为唯一id是否是一个好主意,因为这样可以避免创建和索引另一个字段以及使用无用的_id字段。

这是一个有争议的话题,具体细节取决于数据库引擎。我将更笼统地说,假设数据库引擎可能在以后某个时间点发生更改。为了帮助您做出决定,以下是使用UUID作为行ID的一些优点和缺点:

优点:

  • 在数据不同但性质相似的表中是唯一的
  • 使从一个数据库引擎到另一个数据库引擎的移动非常直接,因为行的ID并不完全依赖于插入时间
缺点:

  • 不允许优雅的聚集索引,因为UUID不是连续的。这意味着在执行插入操作时,数据库必须重新排列大量内存页以保持顺序(某些数据库引擎(如SQL Server)会创建一个“uniquifier”字段来解决此问题,但最终的成本与使用int作为主键相同)
    • 使在应用程序或日志文件中调试变得更加困难,因为int字段比UUID更容易比较/查看
    • 与int相比,表的连接速度较慢,对于大多数数据库实现都是如此

我个人的建议是使用一个int作为你的ID。你的连接将比表更快,并且总体上更容易调试。当然,您仍然可以将UUID设置为外键,但随着解决方案的扩展,易于查看的小值将派上用场。

您的问题是什么?@atishhimpi“将_id设置为唯一id是否是一个好主意,因为这样可以避免我创建和索引另一个字段以及创建一个无用的_id字段。”这在MongoDB中完全没有问题。