为什么Mongodb查询变得缓慢

时间:2015-10-20 02:16:12

标签: java spring mongodb mongo-java-driver

我设置了一个基于MongoDB的Java Web应用程序项目。该项目的DAO由MongoDB Java驱动程序实现;我没有使用Spring Data for MongoDB。

我遇到了性能问题。如果应用程序向数据库发送查询,则响应时间约为17毫秒。但如果我使用Jmeter - 嘲笑大约300个用户 - 90%Line的响应时间约为1300ms。响应时间是无法忍受的。我试图找到原因,但我不知道。

此外,还有MongoUri字符串:

mongo.uri=mongodb://192.168.1.172:27017,192.168.1.172:22222,192.168.1.172:33333/?replicaSet=yyyy&maxPoolSize=100&ssl=false&readPreference=secondaryPreferred&connectTimeoutMS=10000&socketTimeoutMS=10000&safe=false&

该查询就像查询objectID一样,如db.collection.find( { _id: xxxx } )。另外,我在_id上构建了索引。

mongo.xml

<bean id="uri" class="com.mongodb.MongoClientURI">
<constructor-arg value="${mongo.uri}"></constructor-arg>
</bean>
<bean id="mongoClient" class="com.mongodb.MongoClient">
<constructor-arg ref="uri"></constructor-arg>
</bean>
<bean id="mongoCollectionDao" class="com.xxx.api.domain.dao.impl.MongoCollectionDao" lazy-init="false">
<constructor-arg name="mongoClient" ref="mongoClient"></constructor-arg>
<constructor-arg name="mongoDatabaseName" value="${mongo.database}"></constructor-arg>
</bean> 

有人能解释这里出了什么问题吗?

0 个答案:

没有答案