长城是说明文吗:MongoDB中的MapReduce其实更类似关系型数据库中的GroupBy

来源:百度文库 编辑:中财网 时间:2024/04/28 00:22:24

MongoDB中的MapReduce其实更类似关系型数据库中的GroupBy 。

刚做了下这样试验,对于大数据量的GroupBy(MapReduce)还是比较理想的,生成100W条3位随机字符串

  1. for (var i=0; i<1000000; i++)   
  2. {  
  3.  var x = "0123456789";  
  4.  var tmp="";  
  5.  for (var j=0; j<3; j++)  
  6.  {  
  7.   tmp += x.charAt(Math.ceil(Math.random()*100000000)%x.length);|  
  8.  }  
  9.  var u = {_id:i,v1:tmp};  
  10.  db.RandomNum.insert(u);  
  11. }  

然后进行对相同的随机数取Count数 所以必须GroupBy

  1. var m = function(){emit(this.v1,{count:1}); };
  2.  //map key类似关系型数据的group by 第二个是value 就是要进行聚合的字段(sum...)   
  3.     
  4. var r = function (key,values) { var total = 0;for (var i=0; ireturn {count : total}; };.
  5.  //reduce   
  6.    
  7. var res = db.RandomNum.mapReduce(m, r, {out:{replace:'Result'}});  
  8.   
  9. db[res.result].find()  

测试了下时间:

  1. var startTime = new Date();  
  2.   
  3. var m = function(){emit(this.v1,{count:1}); };  
  4.   
  5. var r = function (key,values) { var total = 0;for (var i=0; ireturn {count : total}; };   
  6.   
  7. var res = db.RandomNum.mapReduce(m, r, {out:{replace:'Result'}});  
  8.   
  9. db[res.result].find()  
  10.   
  11. (new Date().getTime()-startTime.getTime())/1000  
结果如下:
  1. > db[res.result].find()  
  2. "_id" : "000""value" : { "count" : 1075 } }  
  3. "_id" : "001""value" : { "count" : 1045 } }  
  4. "_id" : "002""value" : { "count" : 1022 } }  
  5. "_id" : "003""value" : { "count" : 968 } }  
  6. "_id" : "004""value" : { "count" : 994 } }  
  7. "_id" : "005""value" : { "count" : 1009 } }  
  8. "_id" : "006""value" : { "count" : 948 } }  
  9. "_id" : "007""value" : { "count" : 1003 } }  
  10. "_id" : "008""value" : { "count" : 983 } }  
  11. "_id" : "009""value" : { "count" : 993 } }  
  12. "_id" : "010""value" : { "count" : 987 } }  
  13. "_id" : "011""value" : { "count" : 982 } }  
  14. "_id" : "012""value" : { "count" : 957 } }  
  15. "_id" : "013""value" : { "count" : 1031 } }  
  16. "_id" : "014""value" : { "count" : 971 } }  
  17. "_id" : "015""value" : { "count" : 1053 } }  
  18. "_id" : "016""value" : { "count" : 974 } }  
  19. "_id" : "017""value" : { "count" : 975 } }  
  20. "_id" : "018""value" : { "count" : 978 } }  
  21. "_id" : "019""value" : { "count" : 1010 } }  
  22. has more  
  23. >   
  24. > (new Date().getTime()-startTime.getTime())/1000  
  25. 63.335s  
  26. > bye  

测试机的性能:


mapreduce 使用 “其实我想走,其实我想留”是什么歌曲中的歌词? 请问大家一下中国民间传说中的麒麟其实是什么动物? '橘生淮南则为橘,生于淮北则为枳,其实味不同'中的其实什么意思? Google的编程工具称为MapReduce .这个工具像vc一样吗? 歌词:“其实我也不容易”是那首歌中的呀? 求FLASH“人生其实就是一程冒险的旅途”中的曲子? 求FLASH“人生其实就是一程冒险的旅途”中的曲子? 五金中的单光,双光料其实是什么来的?(很少有人详细考究过) 海底两万里中的"海底巨礁"其实是 请问,道路坡段中的“竖曲线”其实是什么来的? 传说中的“天狗吃太阳”,科学说法其实就是指什么? 其实这个 其实啊,,,,,,, 其实我~~ 为什么我在电驴资源频道中的资源在电驴运行时搜索却没有?其实可以下载这资源 电视剧<摇摆女郎>中的一首插曲歌词是"好毒思念其实是一种病毒"这首歌叫什么名字是谁唱的? 电视剧<摇摆女郎>中的一首插曲歌词是"好毒思念其实是一种病毒"这首歌叫什么名字是谁唱的? 电视剧<摇摆女郎>中的一首插曲歌词是"好毒思念其实是一种病毒"这首歌叫什么名字是谁唱的? 太上老君在历史中其实是老子的化身、托塔天王是商朝中的李靖化身。那么,玉皇大帝在历史上是否确有其人? 魔兽争霸中的秘籍其实我知道有哪些,只是不清楚他们怎么样使用请详细些,具体介绍一下这些秘籍的作用。 谁知道有本小说男主角是宫廷的太监,但其实他是寻找失散了的众皇子之一,是一系列小说中的 其实很简单! 男人其实很脆弱