V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
robertaff
V2EX  ›  数据库

MongoDB 单表能否支持到 1 亿,加索引

  •  
  •   robertaff · 2015-02-02 09:30:25 +08:00 · 2374 次点击
    这是一个创建于 3567 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我现在手头有个项目在mysql和MongoDB之间选型,如果mysql的话,中间的缓存更新需要很多的工作量,如果MongoDB能够支持单表1亿数据无压力的的话,事情就会优化很多,因此请教,不知MongoDB单表加索引的话,可否支持到单表1亿的量?

    垂泪呼唤MongoDB高级工程师!

    22 条回复    2015-02-02 23:27:32 +08:00
    dingyaguang117
        1
    dingyaguang117  
       2015-02-02 09:46:10 +08:00 via iPhone   ❤️ 1
    10亿的飘过,用的tomux
    dingyaguang117
        2
    dingyaguang117  
       2015-02-02 09:46:50 +08:00 via iPhone
    @dingyaguang117 外加2个索引 一个默认_id
    robertaff
        3
    robertaff  
    OP
       2015-02-02 09:58:25 +08:00
    @dingyaguang117

    感谢回复,我再进一步描述下我的需求,

    (1)不加索引
    (2)总量大概5-8亿
    (3)查询扫描其中的1亿数据,
    (4)并对这些数据做筛选,归并(mapreduce)

    这时候效率和性能如何?是否可行?
    xujialiang
        4
    xujialiang  
       2015-02-02 10:02:10 +08:00
    这两个头像。。。。。。。。真配~~哈哈
    9hills
        5
    9hills  
       2015-02-02 10:04:33 +08:00 via iPhone   ❤️ 1
    我觉得自己构建下测试集测试下不就完了?分分钟的事。
    dingyaguang117
        6
    dingyaguang117  
       2015-02-02 10:18:41 +08:00   ❤️ 1
    @robertaff 筛选条件很复杂不可以用索引完成吗?
    webflier
        7
    webflier  
       2015-02-02 10:33:10 +08:00   ❤️ 1
    索引是一定要加滴
    robertaff
        8
    robertaff  
    OP
       2015-02-02 11:28:24 +08:00
    @webflier
    @dingyaguang117

    如果用索引的话,能不能满足呢?
    cvv
        9
    cvv  
       2015-02-02 11:45:11 +08:00
    汪星人再次败给了喵星人
    soli
        10
    soli  
       2015-02-02 11:47:04 +08:00   ❤️ 1
    如果全在内存,几十亿算个啥?

    否则,瓶颈在磁盘。一般 7200转的硬盘,每秒200条读写。
    qifei
        11
    qifei  
       2015-02-02 12:04:27 +08:00
    看成 MojangAB
    mathgl
        12
    mathgl  
       2015-02-02 12:12:42 +08:00   ❤️ 1
    @robertaff 有什么指标? 扫描1亿是linear scan? 还是index scan?
    robertaff
        13
    robertaff  
    OP
       2015-02-02 12:37:26 +08:00
    @soli 不在内存,在硬盘。

    @mathgl 扫描一亿是linear scan。
    BiggerLonger
        14
    BiggerLonger  
       2015-02-02 12:40:22 +08:00
    不需要sharding一下吗
    cevincheung
        15
    cevincheung  
       2015-02-02 12:40:33 +08:00   ❤️ 1
    楼主问的是单机单表1亿咩?然后单机配置捏?然后硬盘参数捏?
    dingyaguang117
        16
    dingyaguang117  
       2015-02-02 12:42:39 +08:00   ❤️ 1
    @robertaff 这个要看查询条件了!
    Landarky
        17
    Landarky  
       2015-02-02 13:10:29 +08:00
    毫无压力 。。最好加索引 。。。
    robertaff
        18
    robertaff  
    OP
       2015-02-02 14:10:36 +08:00
    @dingyaguang117

    查询条件是根据timestamp。
    wesley
        19
    wesley  
       2015-02-02 14:19:29 +08:00
    数据量大不敢用mongodb,实在是硬盘无底洞
    jiangzhuo
        20
    jiangzhuo  
       2015-02-02 14:29:45 +08:00
    @dingyaguang117 是tokumx吧
    alsotang
        21
    alsotang  
       2015-02-02 23:01:19 +08:00
    olap 的话,为何不试试其他的分析型数据库选择?
    dingyaguang117
        22
    dingyaguang117  
       2015-02-02 23:27:32 +08:00
    @robertaff 毫无压力,另外你可以用时间戳构造 ObjectId查询,只需要一个_id 索引就行了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5482 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 06:02 · PVG 14:02 · LAX 22:02 · JFK 01:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.