mongodb 可靠吗?为什么经常看到一些如[不要使用mongodb]的言论? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
family
V2EX    MongoDB

mongodb 可靠吗?为什么经常看到一些如[不要使用mongodb]的言论?

  •  
  •   family 2013-11-27 09:46:53 +08:00 16201 次点击
    这是一个创建于 4404 天前的主题,其中的信息可能已经有所发展或是发生改变。
    45 条回复    2016-01-04 09:55:13 +08:00
    ritksm
        1
    ritksm  
       2013-11-27 09:55:00 +08:00   5
    因为他们不知道如何让MongoDB靠谱。problem solved
    andyhuax
        2
    andyhuax  
       2013-11-27 10:04:07 +08:00 via iPhone
    让靠谱的人用它,它就可靠,否则…
    lichao
        3
    lichao  
       2013-11-27 10:08:38 +08:00
    抛开业务场景谈这个话题没有意义
    griffinqiu
        4
    griffinqiu  
       2013-11-27 10:11:29 +08:00
    因为他们不知道如何让MongoDB靠谱。problem solved
    我顶。。。
    merlin852
        5
    merlin852  
       2013-11-27 10:11:55 +08:00
    没有NOSQL的设计经验,真的不是很推荐,还不如mysql
    plucury
        6
    plucury  
       2013-11-27 10:23:17 +08:00
    当热数据超过内存的时候,痛苦就开始了
    anheiyouxia
        7
    anheiyouxia  
       2013-11-27 10:24:56 +08:00
    不了解,但是我想说,也很多人说,不要用MySQL,因为他不靠谱,但是FaceBook就是用MySQL的。
    timothyye
        8
    timothyye  
       2013-11-27 10:26:51 +08:00 via Android   1
    除了不支持事物,还没看到有不靠谱的地方
    breeswish
        9
    breeswish  
       2013-11-27 10:32:24 +08:00
    MongoDB是很好的,但不要在什么都不了解的情况下盲目使用MongoDB,那会很糟糕

    大概是这个意思吧
    ibaser
        10
    ibaser  
       2013-11-27 10:38:26 +08:00
    我就是在不了解情况的情况下在使用。。。

    目前遇到的问题,数据库备份出来只有几十个M,但各种数据库文件占用了几十个G,怎么破?可以数据压缩或清理么。 @ritksm @plucury @timothyye @breeswish
    shiny
        11
    shiny  
    PRO
       2013-11-27 10:39:07 +08:00
    反对的是头脑发热就去用,你问出这种问题来说明你就不适合使用。
    ritksm
        12
    ritksm  
       2013-11-27 10:39:50 +08:00
    @ibaser 试试Tokumx...我用了还不错
    binux
        13
    binux  
       2013-11-27 10:43:55 +08:00
    @ibaser 就是这么设计的,空间预分配
    ibaser
        14
    ibaser  
       2013-11-27 10:47:58 +08:00
    @binux 还有就是缓存数据库也用的mongodb(都设置了过期时间的),怀疑是不是缓存太多了或者定义的索引太多了
    ritksm
        15
    ritksm  
       2013-11-27 10:49:45 +08:00
    @ibaser 缓存请用Redis - -
    jk2r
        16
    jk2r  
       2013-11-27 11:12:59 +08:00
    @family,得看你的应用场景。新手的话,生成环境使用时,运维与学习成本还是较高的。根据业务指定性能指标,实际测试应该是比较好的方法。


    @ibaser 库写不是特别大的话,可以考虑关闭预分配。http://docs.mongodb.org/manual/reference/configuration-options/,noprealloc参数。
    ispinfx
        17
    ispinfx  
       2013-11-27 11:16:27 +08:00   1
    @ritksm

    因为他们不知道如何让MongoDB靠谱。problem solved

    已感谢
    misaka
        18
    misaka  
       2013-11-27 11:22:12 +08:00   1
    @ritksm "因为他们不知道如何让MongoDB靠谱。" +1 已感谢。

    目前在用,感觉很可靠。
    halfelf
        19
    halfelf  
       2013-11-27 11:36:52 +08:00
    sf的回答毫无意义,这个逻辑可以推广到一切质疑
    ibaser
        20
    ibaser  
       2013-11-27 11:44:21 +08:00
    @jk2r 谢谢 我试试
    ritksm
        21
    ritksm  
       2013-11-27 12:00:17 +08:00
    @halfelf 我这么回答的意思就是,能够让楼主rest assured,去研究如何靠谱地用MongoDB而不是怀疑MongoDB到底可不可靠....我感觉没啥逻辑上的问题
    wesley
        22
    wesley  
       2013-11-27 12:21:43 +08:00
    我司JAVA部门的猪头们从来不管业务逻辑都坚定不移地用mongodb
    xzl
        23
    xzl  
       2013-11-27 13:42:37 +08:00
    让靠谱的人在靠谱的应用环境下靠谱的用。看哪些喷的不是没切片就是没做副本集,一不小心加个索引加没了。热数据大于内存?加内存啊,前端再换上redis哈,热数据大于内存你换mysql就能好使?
    yuxing1171
        24
    yuxing1171  
       2013-11-27 14:30:26 +08:00
    要根据业务需求来决定, 单纯的为了mongodb而使用, 才是最不靠谱的。
    seraphln
        25
    seraphln  
       2013-11-27 18:34:47 +08:00
    @ibaser 可以试试 compact.不过会锁库。
    另外,直接remove数据mongodb不会直接释放文件。所以体积会越来越大。
    josephshen
        27
    josephshen  
       2013-11-27 20:14:14 +08:00
    水平不够,用什么都不靠谱。
    winiex
        28
    winiex  
       2013-11-27 20:26:32 +08:00
    @ritksm 老江你说日志收集用 mongodb 做,然后以后数据分析基于它,这个 use case 靠谱么?
    est
        29
    est  
       2013-11-27 20:39:38 +08:00
    我看过对mongodb的吐槽都是因为开发者2了。
    txlty
        30
    txlty  
       2013-11-27 20:41:11 +08:00
    用惯了mssql/mysql/oracle,会很难理解mangodb。
    ritksm
        31
    ritksm  
       2013-11-27 20:56:03 +08:00
    @winiex 靠谱啊...我现在就做了个上报分析的...然后结合Redis基本上简单的数据分析挖掘没啥问题
    ritksm
        32
    ritksm  
       2013-11-27 20:56:53 +08:00
    @winiex 当然很吃内存是个问题...不过现在内存都可以弄到很大了也无所谓了...BTW你暴露我了
    reorx
        33
    reorx  
       2013-11-27 21:39:52 +08:00
    对未知事物的恐惧,以及维护自己所擅长事物权威性的本能。
    ritksm
        34
    ritksm  
       2013-11-27 21:43:25 +08:00
    @timothyye 其实这个tokumx也解决掉了...虽然我没用到 http://www.tokutek.com/2013/04/mongodb-transactions-yes/
    jamiesun
        35
    jamiesun  
       2013-11-27 21:50:54 +08:00
    @winiex 我也在计划用mongodb做日志分析了
    gihnius
        36
    gihnius  
       2013-11-27 23:31:17 +08:00
    ritksm
        37
    ritksm  
       2013-11-27 23:43:42 +08:00   2
    @gihnius
    第一个Its volume on disk is growing 3-4 times faster than the real volume of data it store:设计就是这样的 参见 http://docs.mongodb.org/manual/faq/storage/
    第二个 it eats up all the memory without the possibility to limit this:MongoDB设计的时候的想法(我记得哪里看到)就是用系统的内存管理去控制而不是自己搞一套(参见 http://docs.mongodb.org/manual/faq/fundamentals/#does-mongodb-require-a-lot-of-ram ),但是Tokumx加了一个参数叫做cacheSize可以限制缓存大小,虽然如果你的数据超过了这个大小,会依赖磁盘性能。而且如果内存真的占用过大了一定是你的索引建的不科学,再大就参照第四个吧。
    第三个it begins to slow down the application because of frequent disk access:什么db超过了缓存大小不会去读磁盘数据,我表示不知,求科普
    第四个We don’t want to set a server with more than 100Gb of memory to Errbi:那他一定不知道有个东西叫做auto-sharding,这么强大的功能都不用=_=
    第五个MongoDB require much more attention than we have time. Perhaps we just have more experience in working with postgresql:正如@reorx 所说,难以跳出自己的comfort zone


    点个赞吧亲嘿嘿
    winiex
        38
    winiex  
       2013-11-28 00:19:46 +08:00
    @ritksm = =,爆爆更健康......。看上这个 use case 主要是因为 mongodb 的数据模型对于查询来说太方便了,确实挺适合于这个场景的。我听说,貌似为了提供这种强大的检索能力就不得不各种吃内存吃硬盘,此乃原因之一,这个确实是一只比较纠结的事情。

    另外,mongodb 做读写分离、replication 什么的方便吗?要优化读写什么的,单单 scale up 肯定是不行的吧~。
    winiex
        39
    winiex  
       2013-11-28 00:22:08 +08:00
    @ritksm 我想你用 redis 应该也是做 mongodb 前端的 cache,并且利用 redis 的数据类型的可查询性来做 mongodb 的查询备胎吧。现在这种方式够用咩?
    ritksm
        40
    ritksm  
       2013-11-28 00:30:04 +08:00
    @winiex MongoDB的replication其实挺方便的了 http://docs.mongodb.org/manual/replication/

    Redis的set和sorted set太好用了- -
    winiex
        41
    winiex  
       2013-11-28 00:35:08 +08:00
    @ritksm 嗯,是听说 mongodb 的 Replication 挺多坑的,就想问问你实操的过程中有没有被坑过~。
    ritksm
        42
    ritksm  
       2013-11-28 00:38:34 +08:00
    @winiex 还没具体用到,闲暇时候研究了下而已=-= 只是一些不咋重要的数据分析无所谓做不做Replication了的。。。坑到了也会有解决办法的撒
    yutify
        43
    yutify  
       2014-01-13 22:20:46 +08:00 via iPhone
    最近几个月对 mongodb 的好感度逐日下降。据说前段陌陌劲舞团的事故也是不正确使用 mongodb 导致的。后来陌陌的技术人员飞上海帮久游把数据库移到了 redis 上。
    dingyaguang117
        44
    dingyaguang117  
       2014-05-14 22:39:28 +08:00 via iPhone
    查不出原因的update失败算嘛
    qw7692336
        45
    qw7692336  
       2016-01-04 09:55:13 +08:00
    你是不是用 Google 搜了"mongodb"关键词
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3204 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 42ms UTC 11:34 PVG 19:34 LAX 03:34 JFK 06:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86