首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐工具
RoboMongo
推荐书目
50 Tips and Tricks for MongoDB Developers
Related Blogs
Snail in a Turtleneck
dtgxx
V2EX  ›  MongoDB

使用 pymong insert_many 插入数据越来越慢

  •  
  •   dtgxx · 30 天前 · 784 次点击

    大佬们,我数据量一共 60 亿,现在插入了 6 亿左右,一开始的时候 每次 insert_many 只需要 0.05 秒 1000 条

    目前已经插入 6 亿左右,现在 1000 条数据有时候需要 20 秒,非常的慢。

    用什么办法可以调优一下呢?


    mongo 是单点的,部署在一台机器上,没有分片和副本。

    试过 bulk_write 性能是一样的

    10 条回复    2020-07-10 18:18:43 +08:00
    sdot96
        1
    sdot96   30 天前 via Android
    机器的运行情况?索引情况?数据表能不能做水平分割?
    tikazyq
        2
    tikazyq   30 天前
    单机的话,你这个扩展起来问题会很多

    几个优化点:
    1. 分表( Sharding )
    2. 不要创建索引
    3. 选择其他技术方案,例如 Hive 、HBase

    60 亿条数据,这种量级的数据应该更适合 Hive 或者 HBase 吧,做分布式储存不香么,单点来搞大数据你这不是给自己挖坑么
    22too
        3
    22too   30 天前
    这个数据量确实会出问题的。之前遇到过。
    weizhen199
        4
    weizhen199   30 天前
    考虑下几个列式数据库呗。100e 以下应该都还行。
    Fizzyi
        5
    Fizzyi   30 天前
    @tikazyq 大佬想问下为什么说不要创建索引呢
    specture
        6
    specture   30 天前
    @Fizzyi 索引会降低插入性能
    dtgxx
        7
    dtgxx   30 天前
    @sdot96 #1 目前数据集合做了分隔,每个集合数据量差不多 200 万,内存 64G available 剩余 20g 左右,cpu48 核 负载 20 左右 数据字段有六个,只有一个字段做了索引
    @tikazyq 之前考虑分集合存储,确实没想到插入这么的慢。。主要都是历史数据,想一次导入,后面就轻松了。索引的话,不创建后期查询就非常慢了,所以还是得创建。
    @22too
    @weizhen199 @tikazyq HBase 在类似的情况下插入,不会数据越多越慢吗?是因为列式存储?
    @specture 目前我有六个,后期查询的时候需要一个字段做索引查询,不知道有没有什么好的方式。。。感觉索引还是得要的。
    anzu
        8
    anzu   30 天前
    插完再建索引?
    dtgxx
        9
    dtgxx   30 天前
    @anzu #8 主要是集合太多了,后面再去建可能相当麻烦。
    dtgxx
        10
    dtgxx   30 天前
    @anzu #8 下周试下 看看执行情况如何
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   953 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 20:06 · PVG 04:06 · LAX 13:06 · JFK 16:06
    ♥ Do have faith in what you're doing.