MongoDB能做稍微复杂一点的统计吗?

零点三六 发布于 2012/02/13 14:03
阅读 5K+
收藏 2

比如类似 select sum(*) ,userType  from user group by userType  这样的统计.

mongodb的groupby必须有主键, 遇到select sum(*) from user就没辙了

而内置的mapreduce官方说不是实时的,不建议使用

The price of using MapReduce is speed: group is not particularly speedy, but

MapReduce is slower and is not supposed to be used in “real time.”   --- MongoDB权威指南

那么MongoDB就不能做统计了吗?

加载中
1
田毅
田毅

解决这类海量数据的统计查询问题,推荐试用两种方法:

1 使用列式存储的数据库

2 使用流式计算方式,增量更新统计的结果

比用缓存管用

0
hokim
hokim

real time 不是 “实时” 的意思,而是指实际情况。

上面的英语的意思是 mapreduce 是比较慢的,生产环境下不建议使用。

但是个人使用过后觉得还是可以用的,只是要配合缓存,实际上无论你用什么数据库,统计缓存都是必须的。

零点三六
零点三六
感谢hokim的回答~ 1.能提供一些mongodb统计缓存方面的资料吗? 2.可能是没用好吧,个人感觉mapreduce非常不好用,每当数据大于1000,统计出来的结果就不准确
0
hokim
hokim

1. 缓存跟你用不用mongodb没关系吧,跟你缓存mysql的结果一样的道理。

2. 不会吧,一般都准确的,很可能是你的 js 不过关。。。mapreduce函数没写好吧。。。

返回顶部
顶部