系统中有一个很复杂的功能,是多元检索。
例如,搜索年龄大于等于30,在2018年7月18日收缩压大于140的女性。
检索一次需要70s+,而且整个系统都堵塞。
mongodb是3.x,加了索引,感觉数据库中的优化已经没有上升空间了,现在在考虑代码层优化。
代码是以前的同事开发的,在可以并行的地方用了async.parallel
,遍历用了async.filter
,所以没有优化的头绪。
请问应该从何处着手优化?
系统中有一个很复杂的功能,是多元检索。
例如,搜索年龄大于等于30,在2018年7月18日收缩压大于140的女性。
检索一次需要70s+,而且整个系统都堵塞。
mongodb是3.x,加了索引,感觉数据库中的优化已经没有上升空间了,现在在考虑代码层优化。
代码是以前的同事开发的,在可以并行的地方用了async.parallel
,遍历用了async.filter
,所以没有优化的头绪。
请问应该从何处着手优化?
3 回答2.5k 阅读✓ 已解决
1 回答872 阅读✓ 已解决
2 回答1.1k 阅读
2 回答1.6k 阅读
1 回答782 阅读✓ 已解决
2 回答562 阅读✓ 已解决
2 回答970 阅读
数据库查询不会造成整个程序阻塞,阻塞原因应该是数据返回后的遍历操作,估计是查询出来的数据量太大了,尽可能在数据库查询时过滤掉不必要的数据,实在太多,可以进行分页查询处理