推荐工具
› RoboMongo
推荐书目
› 50 Tips and Tricks for MongoDB Developers
Related Blogs
› Snail in a Turtleneck
oyosc
V2EX  ›  MongoDB

mongodb 查询跟插入百万级数据速度很慢是什么原因呢?是不是跟系统性能有关呢?

  •  
  •   oyosc · Jul 31, 2017 · 6217 views
    This topic created in 3386 days ago, the information mentioned may be changed or developed.
    服务器配置:2 Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHz,内存 8g
    程序是单进程执行的,一次性查询出来数百万数据要一个半小时,插入数百万数据一个小时左右,集合里字段为 32 个,步骤是首先从远程服务器上循环迭代器获取数据,中间进行计算,再通过 insertmany 来进行插入。想问下速度这么慢是有哪些因素呢?怎么才能加快速度
    6 replies  •  2017-07-31 22:20:13 +08:00
    Presageee
    Presageee
    Jul 31, 2017
    1
    看下系统的负载吧,估计是内存不足
    wujiangcheng
    wujiangcheng
    Jul 31, 2017
    2
    看引擎, mmapv1 性能是比较慢的. 并且锁是粒度是比较大, 是集合级别. 相当于并发为 1( 有误请指正)
    建议使用 wiredtiger, 锁是文档级的.

    其它优化
    * 换成 SSD 磁盘
    * 关掉 journal(或者从数据盘挪走)
    * 走单实例, 不走集群
    wujiangcheng
    wujiangcheng
    Jul 31, 2017
    3
    还有一点, 索引过多也会影响插入速度. 最好在插入数据前, 清理一下索引, 最好只保留默认和必要的.
    oyosc
    oyosc
    OP
    Jul 31, 2017
    4
    @wujiangcheng 没有设置索引的,是不是跟网速也有关系呢?
    wujiangcheng
    wujiangcheng
    Jul 31, 2017
    5
    @oyosc 这就需要看下系统状态, 是不是遇到资源瓶颈了
    fiht
    fiht
    Jul 31, 2017
    6
    那啥 如果你用的是 insert_one 的话可以多存几个然后 insert_many
    我的爬虫这么一搞之后效率提高不少
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1486 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 01:10 · PVG 09:10 · LAX 17:10 · JFK 20:10
    ♥ Do have faith in what you're doing.