求助,代码查询结果特别慢

发布问题 回首页

求助,代码查询结果特别慢

★ 0 成为第一个关注这个问题的人

我的java代码如下:
`Query query = Query.query(Criteria.where(“bsid”).regex(value));
mongoTemplate.find(query, T.class);
`
我想以bsid为条件模糊查询,查询1万条左右数据。耗时大概在3s的样子。我在bsid上建了单键索引。返回的文档也比较小,这个速度慢的出奇了。百思不得其解,希望大佬能给指点下我哪里出了问题。

wdjnhm1991 在大约 之前评论了回答
  • 提问于
  • Answers2 个
  • 浏览 12 次
  • 最新活跃于

2 个回答2

0
wdjnhm1991 answered about

我觉得可能问题不是出现在这里,因为我目前来说只有一万多条数据,每个文档也特别小。我在用客户端Robo3T执行查询命令只需要0.02秒的时间,用java的mongoTemplate.find()查询代码执行时间需要4s左右。我使用的maven依赖如下。

  
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
            <version>1.5.8.RELEASE</version>
</dependency>

java查询命令:mongoTemplate.findAll(T.class);这句命里查询出一万多条数据就需要4s左右。我觉得mongodb的性能不至于差到这种情况,但查询速度就是慢的出奇。

0
oogou11 answered about

可以选择 对bsid内容进行“分词” 方案,在新增数据的时候对bsid内容进行分词,然后保存为一个array,对这个array加索引。value值直接匹配array中的值

wdjnhm1991 在大约 之前评论了回答
1 Comment
  • 我觉得可能问题不是出现在这里,因为我目前来说只有一万多条数据,每个文档也特别小。我在用客户端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的性能不至于差到这种情况,但查询速度就是慢的出奇。 -

问题状态

  • Open

类别

2个参与者

求助,代码查询结果特别慢》有11个想法

  1. 谢答,但个人认为不准确,1.mr我觉得不适合实时计算,更贴合后期数据统计需求,2.aggregate必须支持自定义函数,就好像你定义个abc(1,2)一样肯定是计算了,现在的问题是abc(1,2)这个参数我想传个字段进去,比如abc($qty,2)这样….他就不好使了….难道大家没有在aggregate中用字段进行计算的经历么?

发表评论