1:使用索引 ,同时对索引排序,【比如mongodb对时间做索引都用-1降序哈,这样查询最新的速度很快】,注意组合索引中字段的顺序要和查询时字段的顺序一致哈,
用find().explain()检查查询是否用了索引,find().hi什么的那个方法可以设置强制使用索引
2:创建固定集合,会固定集合大小多少g,然后满仓后,从最老数据开始替换
参考 http://www.2cto.com/database/201301/186950.html
3:group by 查询 不要用java驱动带的group by ,要用2.2版本后的aggregate聚合框架来搞,经过试验速度快一倍
参考http://docs.mongodb.org/manual/reference/sql-aggregation-comparison/
http://www.yeetrack.com/?p=649
4:异步统计业务数据到一个集合,类似于物化视图
5:过亿的数据,如果用聚合框架,偶尔会出现执行超过10分钟的,所以一定要设置mongo.getMongoOptions().setSocketTimeout(120000); 读数据库超时时间
时间: 2024-11-09 06:06:43