Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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 MongoDB索引在find方法上有更好的性能?_Java_Mongodb_Mongohq - Fatal编程技术网

Java MongoDB索引在find方法上有更好的性能?

Java MongoDB索引在find方法上有更好的性能?,java,mongodb,mongohq,Java,Mongodb,Mongohq,我有一个关于MongoDB中索引的问题。(我使用mongo java驱动程序) 如果数据库包含许多对象,那么所有对象都具有完全相同的结构,唯一的区别就是某个ID字段的值和名称。为集合中的ID字段编制索引会在ID字段上的某个对象之后加快查询速度吗 我使用MongoHQ“云”MongoDB,也许我做错了什么,但在这种情况下,索引不会获得更好的性能 谢谢你抽出时间 /* just for testing */ DBCollection table = db.getCollection("user");

我有一个关于MongoDB中索引的问题。(我使用mongo java驱动程序)

如果数据库包含许多对象,那么所有对象都具有完全相同的结构,唯一的区别就是某个ID字段的值和名称。为集合中的ID字段编制索引会在ID字段上的某个对象之后加快查询速度吗

我使用MongoHQ“云”MongoDB,也许我做错了什么,但在这种情况下,索引不会获得更好的性能

谢谢你抽出时间

/* just for testing */
DBCollection table = db.getCollection("user");
table.createIndex(new BasicDBObject("uuid", 1));
....

/* write */
for (int i = 0; i < numberOfInserts; i++) {
    BasicDBObject document = new BasicDBObject();
    document.put("name", "hello");
    document.put("uuid", randomUUID.toString() + i);
    table.insert(document);
}

....
/* read */
for (int i = 0; i < numberOfInserts; i++) {
        whereQuery.put("uuid", randomUUID.toString() + i);
        DBObject findOne = table.findOne(whereQuery);
}
/*仅用于测试*/
DBCollection table=db.getCollection(“用户”);
表.createIndex(新的BasicDBObject(“uuid”,1));
....
/*写*/
for(int i=0;i
在研究java mongo驱动程序时,我尝试了类似的方法,得到了相同的结果。没有索引的搜索比使用索引更好(响应时间)


我的建议是:在shell上连接并使用命令“explain”…分析正在发生的事情非常有用

这有点尴尬,但是索引没有带来性能提升的原因很简单,因为本地客户端和远程数据库之间的距离太远。索引只是没有对查询时间产生影响。在客户机上进行的测试相对接近数据库索引,这显然带来了一些性能。

您可以展示一些查询吗?是的,这只是为了测试,因为我将比较不同数据库的性能。MongoDB上的第一个联系人。您测试过有索引和没有索引吗?你能告诉我们explain()?,还有哪些类的性能好?我们没有基准,我已经测试了它,至少我自己没有添加索引!findOne方法没有解释方法如果我是对的。。。我只是想知道为什么它没有变快。我不会对任何内容进行分类:)您的代码不包含任何用于生成randomUUID的内容,因此我假设每个文档都是相同的。对吗?