21.44K 浏览2017/11/21开发问题 0 wdjnhm19910 2017/11/22 0条评论 我的java代码如下: `Query query = Query.query(Criteria.where(“bsid”).regex(value)); mongoTemplate.find(query, T.class); ` 我想以bsid为条件模糊查询,查询1万条左右数据。耗时大概在3s的样子。我在bsid上建了单键索引。返回的文档也比较小,这个速度慢的出奇了。百思不得其解,希望大佬能给指点下我哪里出了问题。 2 答案 活跃已投票最新最老的 0 oogou110 发布 2017/11/29 1 条评论 可以选择 对bsid内容进行“分词” 方案,在新增数据的时候对bsid内容进行分词,然后保存为一个array,对这个array加索引。value值直接匹配array中的值 wdjnhm1991 已评论 2017/11/29 我觉得可能问题不是出现在这里,因为我目前来说只有一万多条数据,每个文档也特别小。我在用客户端Robo3T执行查询命令只需要0.02秒的时间,用java的mongoTemplate.find()查询代码执行时间需要4s左右。我使用的maven依赖如下。 org.springframework.boot spring-boot-starter-data-mongodb 1.5.8.RELEASE java查询命令:mongoTemplate.findAll(T.class);这句命里查询出一万多条数据就需要4s左右。我觉得mongodb的性能不至于差到这种情况,但查询速度就是慢的出奇。 您正在查看2个答案中的1个,单击此处查看所有答案。 注册 或 登录
我觉得可能问题不是出现在这里,因为我目前来说只有一万多条数据,每个文档也特别小。我在用客户端Robo3T执行查询命令只需要0.02秒的时间,用java的mongoTemplate.find()查询代码执行时间需要4s左右。我使用的maven依赖如下。
org.springframework.boot
spring-boot-starter-data-mongodb
1.5.8.RELEASE
java查询命令:mongoTemplate.findAll(T.class);这句命里查询出一万多条数据就需要4s左右。我觉得mongodb的性能不至于差到这种情况,但查询速度就是慢的出奇。