国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

R對MongoDB的性能測試——RMongo

數據庫 其他數據庫 MongoDB
RMongoDB正式發布了修訂版本,這也就意味著,從事數值計算的語言也可以于Nosql產品相接軌了,但是鑒于我身邊并沒有公司真的在使用R和MongoDB的結合,所以在效率問題上,我們也不敢掉以輕心,所以就做了一個這樣的測試。

在九月初的時候,RMongoDB正式發布了修訂版本,這也就意味著,從事數值計算的語言也可以于Nosql產品相接軌了,但是鑒于我身邊并沒有公司真的在使用R和MongoDB的結合,所以在效率問題上,我們也不敢掉以輕心,所以就做了一個這樣的測試。

測試環境是8核,64位機。 用于測試的庫是一個未經Sharding,大概30G左右的Collection。用于存儲用戶的喜好信息,標簽信息等數據。

  1. library(rmongodb)   
  2.  
  3. mongo <- mongo.create()  
  4.  
  5. if(mongo.is.connected(mongo))  
  6. {  
  7.     ns <- 'rivendell.user' 
  8.     print('查詢一個沒有索引的字段,查詢一條')  
  9.     print(system.time(p <- mongo.find.one(mongo,ns,list(Friend=600))))  
  10.     print('查詢一個沒有索引的字段,多條,without buffer')  
  11.     print(system.time(p <- mongo.find(mongo,ns,list(Friend=600))))  
  12.     print('看看是否有緩存策略')  
  13.     print(system.time(p <- mongo.find(mongo,ns,list(Friend=600))))  
  14.  
  15.     print('查詢一個沒有索引的字段,多條,has buffer')  
  16.     buf <- mongo.bson.buffer.create()  
  17.     mongo.bson.buffer.append(buf,'Friend',600L)  
  18.     query <- mongo.bson.from.buffer(buf)  
  19.     print(system.time(p <- mongo.find(mongo,ns,query)))  
  20.     print('看看是否有緩存策略')  
  21.     buf <- mongo.bson.buffer.create()  
  22.     mongo.bson.buffer.append(buf,'Friend',600L)  
  23.     query <- mongo.bson.from.buffer(buf)  
  24.     print(system.time(p <- mongo.find(mongo,ns,query)))  
  25.  
  26.     print('大于的查詢,查詢一條記錄')  
  27.     print(system.time(p <- mongo.find.one(mongo,ns,list(Friend=list('$gt'=600L)))))  
  28.     print('大于的記錄,查詢多條記錄')  
  29.     print(system.time(cursor <- mongo.find(mongo,ns,list(Friend=list('$gt'=600L)))))  
  30.     mongo.cursor.destroy(cursor)  
  31.  
  32.     print('查詢一條有索引的記錄')  
  33.     print(system.time(p <- mongo.find.one(mongo,ns,list('_id'=3831809L))))  
  34.     print('查詢索引的記錄')  
  35.     print(system.time(p <- mongo.find(mongo,ns,list('_id'=3831809L))))  
  36.  
  37.     print('插入一條記錄')  
  38.     buf <- mongo.bson.buffer.create()  
  39.     mongo.bson.buffer.append(buf,'name',"huangxin")  
  40.     mongo.bson.buffer.append(buf,'age',22L)  
  41.     p <- mongo.bson.from.buffer(buf)  
  42.     print(system.time(mongo.insert(mongo,ns,p)))  
  43.  
  44.     print('找到剛剛插入的記錄')  
  45.     print(system.time(p <- mongo.find.one(mongo,ns,list('name'='huangxin'))))  
  46.     if(!is.null(p))  
  47.     {  
  48.         print('success')  
  49.     }  
  50.  
  51.     print('批量插入')  
  52.  
  53.     buf <- mongo.bson.buffer.create()  
  54.     mongo.bson.buffer.append(buf,'name','huangxin')  
  55.     mongo.bson.buffer.append(buf,'age',22L)  
  56.     p1 <- mongo.bson.from.buffer(buf)  
  57.  
  58.     buf <- mongo.bson.buffer.create()  
  59.     mongo.bson.buffer.append(buf,'name','huangxin')  
  60.     mongo.bson.buffer.append(buf,'age',22L)  
  61.     p2 <- mongo.bson.from.buffer(buf)  
  62.  
  63.     buf <- mongo.bson.buffer.create()  
  64.     mongo.bson.buffer.append(buf,'name','huangxin')  
  65.     mongo.bson.buffer.append(buf,'age',22L)  
  66.     p3 <- mongo.bson.from.buffer(buf)  
  67.  
  68.     print(system.time(mongo.insert.batch(mongo,ns,list(p1,p2,p3))))  
  69.  
  70.     print('找到剛剛批量插入的記錄')  
  71.     print(system.time(cursor <- mongo.find(mongo,ns,list('name'='huangxin'))))  
  72.  
  73.     i <- 0  
  74.     while(mongo.cursor.next(cursor))  
  75.     {  
  76.         i <- i + 1  
  77.     }  
  78.     print(i)  
  79.  
  80.     print('批量更新')  
  81.     print(system.time(mongo.update(mongo,ns,list(name='huangxin'),list('name''kym'))))  
  82.  
  83.     print('查看更新是否成功')  
  84.     print(system.time(p <- mongo.find.one(mongo,ns,list('name'='kym'))))  
  85.     if(!is.null(p))  
  86.     {  
  87.         print('success')  
  88.     }  
  89.  
  90.     print('批量刪除')  
  91.     print(system.time(mongo.remove(mongo,ns,list(name='kym'))))  
  92. }  
  93.  
  94.     print(system.time(p <- mongo.find.one(mongo,ns,list('name'='kym'))))  
  95.     if(!is.null(p))  
  96.     {  
  97.         print('success')  
  98.     }  

 

  1. [1] "查詢一個沒有索引的字段,查詢一條" 
  2. user system elapsed  
  3. 0.000 0.000 0.115  
  4. [1] "查詢一個沒有索引的字段,多條,without buffer" 
  5. user system elapsed  
  6. 0.000 0.000 32.513  
  7. [1] "看看是否有緩存策略" 
  8. user system elapsed  
  9. 0.000 0.000 32.528  
  10. [1] "查詢一個沒有索引的字段,多條,has buffer" 
  11. user system elapsed  
  12. 0.000 0.000 32.685  
  13. [1] "看看是否有緩存策略" 
  14. user system elapsed  
  15. 0.000 0.000 33.172  
  16. [1] "大于的查詢,查詢一條記錄" 
  17. user system elapsed  
  18. 0.000 0.000 0.001  
  19. [1] "大于的記錄,查詢多條記錄" 
  20. user system elapsed  
  21. 0.000 0.000 0.014  
  22. [1] "查詢一條有索引的記錄" 
  23. user system elapsed  
  24. 0 0 0  
  25. [1] "查詢索引的記錄" 
  26. user system elapsed  
  27. 0 0 0  
  28. [1] "插入一條記錄" 
  29. user system elapsed  
  30. 0 0 0  
  31. [1] "找到剛剛插入的記錄" 
  32. user system elapsed  
  33. 0.00 0.00 35.42  
  34. [1] "success" 
  35. [1] "批量插入" 
  36. user system elapsed  
  37. 0 0 0  
  38. [1] "找到剛剛批量插入的記錄" 
  39. user system elapsed  
  40. 0.004 0.000 35.934  
  41. [1] 7  
  42. [1] "批量更新" 
  43. user system elapsed  
  44. 0.000 0.004 0.000  
  45. [1] "查看更新是否成功" 
  46. user system elapsed  
  47. 0.000 0.000 67.773  
  48. [1] "success" 
  49. [1] "批量刪除" 
  50. user system elapsed  
  51. 0 0 0  
  52. user system elapsed  
  53. 0.000 0.000 91.396 

之前我一直不太理解的就是為什么大于和等于,差距會差這么多。后來當我在用Python去做同樣的測試的時候發現,Python兩者的效率其實是相同的,所以這就證明了這個不是MongoDB的問題,而我不相信在數據庫層面,一個語言的Driver會有這么大的差別。

后來我發現了Python和R的關于MongoDB Driver的一個區別。首先,Python find的時候,不是將查詢到的數據集整體拉回,而是返回一個cursor,也就是說,他在執行find命令的時候并不消耗時間,而如果加上while cursor.next()的時候,才會真正地去執行這個查詢。

但是R不一樣,R會首先考慮數據集的大小(或者其他情況),然后視情況而定地返回cursor還是將整個數據集整體拉回。如果我們將之前的while mongo.cursor.next(cursor)也算在計算時間的時候,那么我們就會發現,其實大于和等于的操作,效率相差并不明顯了.......

在實際操作中,批量插入是一個非常常見的應用場景,但是對于R或者Matlab語言來說,循環的效率一直是硬傷,所以接下來,我會嘗試著用apply系列來解決R語言的循環問題,如果實際操作發現可行,那么接下來使用mutilab等R的并行計算庫來充分發揮多核的效率也值得嘗試了!

原文鏈接:http://www.cnblogs.com/kym/archive/2011/09/26/2191501.html

【編輯推薦】

  1. MongoDB之父:MongoDB勝過BigTable
  2. 主流NoSQL數據庫全方位評測之MongoDB
  3. 教你如何利用MySQL學習MongoDB
  4. 在Windows環境下MongoDB搭建和簡單操作
  5. 教你五步優化你的MongoDB
責任編輯:艾婧 來源: 飛林沙的博客
相關推薦

2011-03-03 10:32:07

Mongodb億級數據量

2021-07-08 14:59:05

JMHMongodb數據

2011-02-23 11:18:48

MongoDBMySQL性能測試

2019-01-11 17:47:54

華為云

2015-07-20 16:41:16

MongoDBJavaScript

2024-01-22 09:41:05

MongoDB索引

2023-06-21 07:49:08

R9-7945HX性能處理器

2011-07-28 09:08:14

MongoDB性能測試

2017-08-10 14:04:25

前端JavaScript函數性能

2023-09-18 16:14:35

性能測試開發

2013-05-08 09:31:32

MangoDB

2013-12-25 10:32:41

MySQL性能測試

2022-12-15 08:00:38

JavaScript錯誤性能

2010-05-04 18:14:50

Oracle 性能工具

2010-04-20 17:07:46

Oracle 性能

2022-11-17 08:00:18

JavaScript錯誤性能

2013-11-19 10:08:06

MongoDB

2011-03-15 16:34:36

Iptables性能

2021-12-29 10:30:15

JMH代碼Java

2011-07-04 17:38:47

性能測試
點贊
收藏

51CTO技術棧公眾號

国产成人亚洲欧美| 亚洲国产精品女人| 久久xxx视频| 精品成人久久av| 国产成人精品视频免费看| 久久国产精品久久w女人spa| 国产精品美女www| jazzjazz国产精品久久| 中文字幕久热精品在线视频 | 亚洲一级二级| 国产精品99免视看9| 999国产精品一区| 久久夜色精品国产亚洲aⅴ| 欧美裸体视频| 亚洲网站在线观看| 在线成人视屏 | 成人女同在线观看| 精品国产一区二区在线观看| 国产激情在线视频| 精品av综合导航| 中文在线а√在线8| 亚洲人成在线观看网站高清| 丝袜诱惑一区二区| 在线日韩中文字幕| 99精品视频在线免费播放| 最新中文字幕亚洲| 久久久人成影片一区二区三区在哪下载 | 怡红院在线播放| 欧美一二三在线| av中文字幕在线观看第一页| 亚洲黄色在线观看| 日本少妇一区| 欧美激情亚洲另类| 欧美美女在线观看| 福利精品视频| 久久国产福利国产秒拍| 欧美日韩性生活片| 中文字幕中文乱码欧美一区二区 | 国产亚洲欧美色| 免费一级电影| 日韩欧美在线一区| 黄av在线免费观看| 国产亚洲一区二区在线| 成人av地址| 动漫3d精品一区二区三区| 日本不卡一区二区| 无码aⅴ精品一区二区三区浪潮 | 欧美tk—视频vk| 国产福利91精品一区二区| 久久这里有精品视频| 最新亚洲精品| 免费成人看片网址| av不卡免费电影| 视频黄页在线| 亚洲激情成人网| 日本成人7777| 国产精品自拍首页| 国产精品99久久久久久似苏梦涵 | 97久久精品人人爽人人爽蜜臀| 成人黄网18免费观看的网站| 日本丶国产丶欧美色综合| 麻豆成全视频免费观看在线看| 久久久久这里只有精品| 欧美 日韩 国产 一区| 99精品一区二区三区的区别| 亚洲国产精品激情在线观看| 污视频在线观看免费| 精品视频偷偷看在线观看| 日韩极品少妇| 亚洲精品在线视频观看| 国产婷婷一区二区| av网站大全在线| 7777kkkk成人观看| 99精品欧美| 99热这里只有精品在线播放| 欧美日韩电影在线| 国产乱人伦丫前精品视频| 欧美一级日本a级v片| 国产喷白浆一区二区三区| 在线视频婷婷| 欧美一级片在线播放| 美女视频网站久久| 男人天堂午夜在线| 中文字幕在线国产精品| 国内激情久久| 91制片厂毛片| 日韩av在线电影网| 欧美国产三区| 四虎永久在线高清国产精品| 亚洲精品videossex少妇| 久久久久久久久久久妇女| 日韩视频第二页| 精品久久99ma| 欧美三级午夜理伦三级中文幕| 99精品免费在线观看| 亚洲精品国产精品自产a区红杏吧| 欧美一区电影| 色哟哟精品视频| 亚洲欧美在线一区二区| 激情久久综合| 美女永久在线网站| 午夜精品久久17c| 国产原创一区二区| 午夜视频在线看| 国产欧美精品va在线观看| 国产日韩欧美a| 性高爱久久久久久久久| 久久99精品久久久久久久久久| 日韩美女啊v在线免费观看| 成人在线爆射| 亚洲一区二区三区色| 欧美性受极品xxxx喷水| 精品国产一区二区三区小蝌蚪| 少妇高潮喷水在线观看| 日韩av在线网址| 蜜臀av性久久久久蜜臀aⅴ四虎| 黄色国产在线| 91精品入口蜜桃| 偷拍日韩校园综合在线| 免费国产自久久久久三四区久久| 男女超爽视频免费播放| 亚洲欧美日韩综合| 国产精品自拍三区| 日韩影片中文字幕| 佐佐木明希av| 亚洲人成网站在线播| 久久成人免费日本黄色| freexxx性亚洲精品| 久久综合婷婷综合| 日韩一区二区电影网| 久久久成人网| 草草在线视频| 久草免费福利在线| 久久久精品欧美| 中文字幕不卡在线播放| 日本一区二区三区播放| av动漫免费看| 97成人超碰免| 五月天一区二区三区| 在线成人超碰| 老司机午夜在线| 亚洲一二三区在线| 色偷偷91综合久久噜噜| 久久久久久久久久久久久夜| 国产精品一区二区三区四区在线观看| 国产又黄又大又粗视频| 久久久久免费视频| 亚洲国产aⅴ天堂久久| 亚洲视频久久| www.色在线| 可以在线看的黄色网址| 欧美激情国内偷拍| 亚洲午夜一区二区| 亚洲男人影院| 日韩av电影资源网| 啊啊啊射了视频网站| 成人在线观看视频网站| 69成人精品免费视频| 国产精品一区二区三区四区| 亚洲高清在线一区| 欧美性孕妇孕交| 三级网在线观看| 久久久欧美精品| 欧美亚洲日本一区| 国产白丝网站精品污在线入口| 高潮按摩久久久久久av免费| 在线免费91| 中文字幕中文字幕一区三区| 久久久www成人免费精品张筱雨| 亚洲美女区一区| 国产人成精品一区二区三| 福利一区二区免费视频| 国产传媒在线视频| 欧美爱爱视频网站| 欧美一级bbbbb性bbbb喷潮片| 欧美日韩中文精品| 不卡av在线免费观看| 久久综合88| 91精品xxx在线观看| 免费看的毛片| 亚洲综合欧美日韩| 欧美做受高潮电影o| 日韩欧美国产一区二区三区| 国产丝袜美腿一区二区三区| 欧美日韩三区| 香港久久久电影| 777视频在线观看| 亚洲aⅴ天堂av在线电影软件| 欧美激情在线观看| 日韩欧美在线不卡| 1024成人网| 国模大尺度一区二区三区| 国内精品视频在线观看 | 亚洲婷婷伊人| 都市激情久久综合| 97香蕉久久| a级黄色一级片| 久久久久久国产精品mv| 欧美精品九九久久| 亚洲国产黄色片|