把 mongo 当作主数据库的疑问 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xing393939
V2EX    MongoDB

把 mongo 当作主数据库的疑问

  •  
  •   xing393939 2017-09-20 23:08:22 +08:00 5597 次点击
    这是一个创建于 2943 天前的主题,其中的信息可能已经有所发展或是发生改变。
    新公司主数据库基本是 mongo,用了一段时间感觉有这个问题(对比 mysql ):

    不能清晰知道表结构,mysql 则一目了然,mysql 相当于有了表定义的文档。而 mongo 数据机构可以是多维、多数据类型,每条记录字段可多可缺,这样感觉维护性很差,非得靠强硬的团队规范来保证数据结构的一致。

    不知道大家对这个有什么看法呢
    10 条回复    2017-09-21 11:21:58 +08:00
    a87150
        1
    a87150  
       2017-09-20 23:10:22 +08:00
    期待 yinwang 拯救世界。
    xiaxiaokang
        2
    xiaxiaokang  
       2017-09-20 23:30:21 +08:00   1
    作为一个不是后端开发的说下看法,关系型数据和非关系型数据的使用具体看场景,例如资讯型平台 mongo 绝对是最佳选择,而电商则不太适合,而且对于 mysql 新增字段必须修改表结构而 mongo 则不需要。现在互联网需求变更及其快,使用关系型就会对表结构不断的修改挺麻烦,当然关系型和非关系型是相互依存关系,而并非二选其一的情况,从性能角度来讲,多表操作和单结构体操作性能可想而知,不要排斥到底使用那个作为数据库,而多考虑业务场景选择那种数据库! 作为前端理解只能到这里,有不对可以指正
    a342191555
        3
    a342191555  
       2017-09-20 23:51:43 +08:00
    1、mongo 本身是为了非结构化数据而准备的,如果需要范式化的数据,我感觉用关系型数据库会更好。

    2、mongo 有[Document Validation]( https://docs.mongodb.com/manual/core/document-validation/)实现了一定程度上字段的固定功能,在某些方面(例如字符串的约束等)比 MySQL 做得更多。

    3、在一些可视化工具中,如[MongoDB Compass]( https://www.mongodb.com/products/compass)和[Studio 3T]( https://studio3t.com),可以以 Table 形式组织和显示数据。
    a342191555
        4
    a342191555  
       2017-09-20 23:55:21 +08:00
    回复中不能用 markdown 么?

    格式错乱
    newbie269
        5
    newbie269  
       2017-09-21 08:07:32 +08:00
    @a342191555 不可以
    nullcc
        6
    nullcc  
       2017-09-21 09:23:37 +08:00
    原来一个长期的项目我们团队也是用 mongodb 做主力开发,不过后来还是觉得关系型数据库做主力,NoSQL 类的做辅助,放一些诸如 log 的简单数据比较好。
    EricFuture
        7
    EricFuture  
       2017-09-21 09:47:59 +08:00
    你的转变成 nosql 的思维,刚开始从 mysql 转 mongo 也是各种不适应,现在感觉 mysql 反而用得不顺手了。两种数据库各有各的长处,主要看需求吧
    Immortal
        8
    Immortal  
       2017-09-21 09:52:53 +08:00
    同意 6L
    非关系数据库有些需求的数据查起来简直不要不要的
    还是不太建议 mongo 当主库 把一些数据量大,查询简单,有归档性质的放 mongo 里比较不错

    目前我负责的项目主库还是 mysql
    hantsy
        9
    hantsy  
       2017-09-21 11:20:27 +08:00
    拿 Mongo 与 RDBMS 比就没办法了。

    NOSQL 越来越流行,特别在互联网应用中。使用 NOSQL,首先要转换 RDBMD 的关系思维,如果什么都是以关联关系去想,NOSQL 根本就用不起来。

    三年前一个程序中就开始用 Mongo 用作主要数据库,另外配合 ElasticSearch 作产品搜索,Hazecast 作缓存共享之内的。

    现在的项目开发中,基本都用到多种数据库混合,Redis,Neo4j, Mongo,ElasticSearch,Cassandra,RDBMS ( MSQL,PostgreSQL ) 等,根据场景需要选择合适数据库,但不得不说,用 RDBMS 的情况越来越少。
    gosky
        10
    gosky  
       2017-09-21 11:21:58 +08:00
    这有什么
    不是一个结构的,不放一个集合不就行了
    难道你还想把它当 sql 数据库用?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1155 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 17:48 PVG 01:48 LAX 10:48 JFK 13:48
    Do have faith in what you're doing.
    ubao 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