java mongodb模糊查询优化

query.addCriteria(Criteria.where("time").regex(Pattern.compile(
					"^.*" + CommUtil.toString(queryParams.get("QueryTime")) + ".*$", Pattern.CASE_INSENSITIVE)));

这个是我之前用的模糊查询;利用 Pattern来拼接查询条件。

但是后来发现当数据达到一定的量的时候。这样全局去模糊的匹配,查询速率就会特别慢。

于是我们老大提出修改

query.addCriteria(Criteria.where("time").gte(CommUtil.toString(queryParams.get("timeQuery")) + " 00:00:00"));
query.addCriteria(Criteria.where("time").lte(CommUtil.toString(queryParams.get("timeQuery")) + " 23:59:59")); 

利用gte(大于等于)和了lte(小于等于)去做限制条件就不会去模糊匹配。

这样效率就会特别快。

发布了100 篇原创文章 · 获赞 43 · 访问量 9万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览