当数据大小超过500万时,在mongoDb中从java启动find()查询的速度会变慢
在使用java在mongoDb中执行find()操作时,我的应用程序面临性能问题,当数据大小超过500万时,需要花费大量时间(搜索单个文档有时需要数千毫秒) 欢迎您的任何意见。:) java查找查询:当数据大小超过500万时,在mongoDb中从java启动find()查询的速度会变慢,java,mongodb,performance,Java,Mongodb,Performance,在使用java在mongoDb中执行find()操作时,我的应用程序面临性能问题,当数据大小超过500万时,需要花费大量时间(搜索单个文档有时需要数千毫秒) 欢迎您的任何意见。:) java查找查询: db.test.find("flag":false, $or:[{"uni.phone":"99********"},{"uni.mail":"abc@test.com"}] mongoDb上的索引: db.test.createIndex({"flag":-1}) db.test.create
db.test.find("flag":false, $or:[{"uni.phone":"99********"},{"uni.mail":"abc@test.com"}]
mongoDb上的索引:
db.test.createIndex({"flag":-1})
db.test.createIndex({"uni.phone":1})
db.test.createIndex({"uni.mail":1})
Mongo文档json:
{
"_id" : "912c2345-f95g-40bf-c871-f6135d3acd879",
"uni" : {
"phone" : [
"99********"
],
"email" : [
"abc@test.com"
]
},
"comb" : false,
"flag" : false,
"combIds" : null,
"Histories" : null,
"creationDate" : "2017-06-14T17:03:44Z"
}
Mongo Stats
:此处捕获的索引位于错误的字段中。您需要db.test.createIndex({“uni.phone”:1})
和db.test.createIndex({“uni.mail”:1})
。它们是嵌套的,所以“路径”很重要。感谢您指出这一点……索引是:db.test.createIndex({“flag”:-1})db.test.createIndex({“uni.phone”:1})db.test.createIndex({“uni.mail”:1})您使用的MongoDB的具体版本以及部署类型(独立、副本集、分片集群)?你能把explain(true)
的结果包括进来吗?