mongodb效率的简单测试

测试环境:

网络:内部的局域网

服务器:4核,2.7GHZ,4g,1t

客户端:i3,4g

样本数据:

key:数字

value:2.66k xml数据

测试1

  从客户端插入1百万条数据到服务器端数据库mongodb

  用时9分7秒

  数据库大小:3.95GB

测试2

  从客户端插入1千万条数据到服务器端数据库mongodb

  用时1小时55分16秒

  数据库大小:29.9GB

  服务器资源:

    内存占用:3.8G,虚拟内存60G

    cpu:10%左右

  客户端:cpu 15%左右.

测试3

  (压缩字符串)从客户端插入1百万条数据到服务器端数据库mongodb

   用时:4分51秒              不压缩的是9分7秒 

   数据库大小:1.95GB       不压缩的是3.95GB 

测试4

    测试样本:2.9m的excel文件

    用小文件模式(存在document中)插入673条=1.95GB

    用时,4分30秒

 测试5

    测试样本:2.9m的excel文件

    用大文件模式插入673条=1.95GB

    用时30分43秒

结论:

可以看出1百万和1千万的时间差距很大,原因就是由于1千万的插入过程中,物理内存耗尽,开始使用虚拟内存,故效率大大降低。

mongoDB占用内存和虚拟内存、网络带宽很多,服务器和客户端cpu占用较少,服务器升级应注重内存和硬盘。计通比较低。可以用压缩数据的方式提高计通比,从而提高程序的效率。

mongoDB储存文件的限制是文件大小要小于4m。对于大于4m的文件,则必须用GridFS方式储存,参见

http://www.cnblogs.com/lipan/archive/2011/03/21/1989409.html#viewSource

所以插入大于4m的文件会慢的多,可以考虑从客户端限制excel文件的大小(例如要求用户将一个workbook分成几个单独的sheet).

原文地址:https://www.cnblogs.com/tigerlove/p/2193860.html