`
he91_com
  • 浏览: 378793 次
文章分类
社区版块
存档分类
最新评论

Python 验证MongoDB中$set、$inc、$push几种修改器操作的速度

 
阅读更多

Python 验证MongoDB中$set、$inc、$push几种修改器操作的速度


在MongoDB中,$set、$inc、$push都能够对数据库进行操作,那么到底哪种修改器操作速度更快呢?我们今天来验证一下。

先描述一下本人的实验环境:

Win8操作系统64位,内装虚拟机32位系统,CentOS5.5


实验第一步,安装并启动MongoDB数据库服务器:

在CentOS下如何安装MongoDB数据库如果有疑问的请猛击如下链接http://blog.csdn.net/yima1006/article/details/9840239

    [root@h3 home]# mongod -f /etc/mongod.conf
    Thu Jul 25 00:19:15.950
    Thu Jul 25 00:19:15.950 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
    Thu Jul 25 00:19:15.950
    about to fork child process, waiting until server is ready for connections.
    forked process: 14519
    all output going to: /var/log/mongo/mongod.log
    child process started successfully, parent exiting
    [root@h3 home]#

实验第二步,编辑测试文件,这里我们保存为test.py,文件内容如下:

    #!usr/bin/python
    #coding=utf-8

    from pymongo import Connection
    import time
    db = Connection().performance_test
    db.drop_collection("updates")
    collection = db.updates
    collection.insert({"x": 1})

    collection.find_one()

    # in inc test
    start_inc = time.time()
    for i in range(100000):
        collection.update({}, {"$inc" : {"x" : 1}})
    collection.find_one()
    print '$inc:', time.time() - start_inc

    # in set  test
    start_set = time.time()
    for i in range(100000):
        collection.update({}, {"$set" : {"x" : 1}})
    collection.find_one()
    print '$set:', time.time() - start_set

    # in push test
    start_push = time.time()
    for i in range(100000):
        collection.update({}, {"$push" : {"x" : 1}})
    collection.find_one()
    print '$push:', time.time() - start_push

实验第三步,我们运行测试test.py,这里我们运行5次

    [root@h3 home]# python test.py
    $inc: 6.83732295036
    $set: 6.61989808083
    $push: 10.5028648376
    [root@h3 home]# python test.py
    $inc: 6.56225991249
    $set: 6.12179207802
    $push: 10.264081955
    [root@h3 home]# python test.py
    $inc: 6.18113183975
    $set: 6.4468960762
    $push: 10.077311039
    [root@h3 home]# python test.py
    $inc: 6.19089698792
    $set: 6.61814904213
    $push: 9.5483288765
    [root@h3 home]# python test.py
    $inc: 6.93615078926
    $set: 6.58752202988
    $push: 9.91513586044
    [root@h3 home]#

结论:在MongoDB中,$inc、$set 修改器的操作速度相差不大,但明显快于$push修改器。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics