既然 mysql 已经支持存储 json 数据类型,这是不是意味着它可以顶替大部分 NoSQL 的数据库应用场景? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
oooolongtea
V2EX    程序员

既然 mysql 已经支持存储 json 数据类型,这是不是意味着它可以顶替大部分 NoSQL 的数据库应用场景?

  •  1
     
  •   oooolongtea 2020-12-05 12:07:09 +08:00 4506 次点击
    这是一个创建于 1859 天前的主题,其中的信息可能已经有所发展或是发生改变。
    程序员小白一枚。最近在阅读数据库方面的书籍。
    NoSQL 特点就是不用给它的数据规定一个框架。
    那么 Mysql 既然已经支持了 JSON 的数据类型,我们能用 mysql 去顶替大部分 NoSQL 的应用场景吗?比如我们可以把一些不常被搜索到、但是又必须存储的冗余数据存储到 mysql 的 json 那一栏。
    18 条回复    2020-12-06 15:59:55 +08:00
    yrj
        1
    yrj  
       2020-12-05 12:11:27 +08:00 via iPad
    如果数据增长不多,当然可以
    oooolongtea
        2
    oooolongtea  
    OP
       2020-12-05 12:12:14 +08:00
    @yrj 你的意思是我们实际操作里,用 nosql 的时候,一般都是因为数据在段时间内爆发式增长吗?
    dorothyREN
        3
    dorothyREN  
       2020-12-05 12:28:07 +08:00   1
    pg 支持 json 多少年了,也没多少人把它当 noSQL 用啊
    aijam
        4
    aijam  
       2020-12-05 12:34:18 +08:00   1
    按这道理,你也可以文件系统直接存 JSON 文件,也能顶替大部分 NoSQL 场景。
    oooolongtea
        5
    oooolongtea  
    OP
       2020-12-05 12:41:43 +08:00
    @dorothyREN @aijam 我这不是向各位请教实际的情况嘛,因为我接触这些数据库的机会不多。
    opengps
        6
    opengps  
       2020-12-05 12:52:39 +08:00
    可以顶替,但是未必会被选用
    lizheming
        7
    lizheming  
       2020-12-05 13:25:44 +08:00 via iPhone
    索引查询需求不强的情况下是 OK 的
    wudaye
        8
    wudaye  
       2020-12-05 13:27:06 +08:00 via Android
    我的使用体验是可用但是难用
    cmdOptionKana
        9
    cmdOptionKana  
       2020-12-05 13:38:09 +08:00
    NoSQL 的应用场景本来就小,多数情况下经典 sql 就够用了。

    NoSQL 我也不太很了解,好像火过一阵子又沉寂了,我也很好奇,现在大厂对 NoSQL 是什么态度。
    sean10
        10
    sean10  
       2020-12-05 13:44:19 +08:00 via Android
    @cmdOptionKana 现在是 newsql 了吧
    dorothyREN
        11
    dorothyREN  
       2020-12-05 13:57:59 +08:00
    @lizheming #7 pg 的 json 是支持索引的
    love
        12
    love  
       2020-12-05 14:03:33 +08:00
    nosql 应用场景非常少,所以当然是可以代替的
    Jooooooooo
        13
    Jooooooooo  
       2020-12-05 15:03:42 +08:00
    当然

    因为你搞错了为什么要用 nosql
    xuanbg
        14
    xuanbg  
       2020-12-05 15:13:04 +08:00
    NoSQL 当然是在应该用的时候用。MongoDB 我们用来存快照数据,其他的使用场景也基本就没了。。
    crclz
        15
    crclz  
       2020-12-05 16:16:16 +08:00
    你可以比较一下 MongoDB 和 PostgreSQL 的 jsonb 的区别:

    1. pg jsonb 查询语言支持不友好(例如,C# Linq List.Contains 支持不了,又不报错)。spring data 那边怎么样不了解。
    2. pg jsonb 没有 map reduce,所以 jsonb 你想要 group by,就别想了,老老实实用关系模型吧。
    3. mongo 自带原生集群和分片支持
    4. 索引支持:(这点我没有经过考证,属于半瞎扯的)我个人感觉 Mongo 天生要应对复杂的文档结构,所以可能会把情况考虑的比较全

    综上,专业的东西给专业的做。

    当然,这几点也有解决方案:
    1 -- jsonb 查询语言支持不友好:写原生的字符串查询语句。thoughtworks 有一个开源的教程项目就是这样做的(用的是 mysql json )
    2 -- pg jsonb 没有 map reduce:因为 map reduce 一般是用来搞统计、查询的,所以可以利用 CQRS 的思想,把那一部分需要 map reduce 才能做统计的聚合的查询模型采用关系模型。
    4 -- 索引支持:如果查询需求复杂,就把那一部分复杂的采用 CQRS 。
    undeflife
        16
    undeflife  
       2020-12-05 19:10:24 +08:00
    虽然楼上说的全错 但是 pg 支持 json 跟 拿 pg 当 nosql 还是两回事

    简单比较其实可以参考 lsm 与 B tree 的差别
    rekulas
        17
    rekulas  
       2020-12-06 11:45:31 +08:00
    想多了,mysql 的 json 支持基本等同鸡肋,噱头而已
    aguesuka
        18
    aguesuka  
       2020-12-06 15:59:55 +08:00 via Android
    支持有程度的区别。
    mongo 有 unwined map reduce 。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5447 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 06:42 PVG 14:42 LAX 22:42 JFK 01:42
    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