V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
shanghai1943
V2EX  ›  问与答

想问下大家在生产中有用 MySQL8 里的 JSON 特性了么

  •  
  •   shanghai1943 · 2021-12-30 11:55:10 +08:00 · 2572 次点击
    这是一个创建于 1088 天前的主题,其中的信息可能已经有所发展或是发生改变。
    MySQL5.7 开始支持 JSON 数据类型了,8 里面也支持了 JSON 字段的索引,不知道各位老哥在生产环境中有用过么?效果如何?

    谢谢。
    15 条回复    2021-12-31 14:29:29 +08:00
    sadfQED2
        1
    sadfQED2  
       2021-12-30 11:59:16 +08:00 via Android
    生产环境 mysql5.6
    mikulch
        2
    mikulch  
       2021-12-30 12:02:53 +08:00
    这个特性具体什么用处?
    shanghai1943
        3
    shanghai1943  
    OP
       2021-12-30 12:14:51 +08:00
    @mikulch 从网上的帖子来看,可以把一些不太重要的信息或者需要经常扩展的信息放在 JSON 字段里,省去声明字段的麻烦,可以利用自带的 JSON 函数对里面的字段进行查询过滤。
    shanghai1943
        4
    shanghai1943  
    OP
       2021-12-30 12:15:11 +08:00
    @sadfQED2 连 5.7 都还没么。。
    vate32
        5
    vate32  
       2021-12-30 12:34:36 +08:00
    用了,主要存储一些不怎么重要也许会变的字段,比如过滤信息啥的。mybatis-plus 可以直接映射,序列化和反序列化基本不需要操心
    @TableField(value = "filter_info", typeHandler = JacksonTypeHandler.class)
    private FilterInfo filterInfo;
    // filter_info 在表里就是 json 类型
    shanghai1943
        6
    shanghai1943  
    OP
       2021-12-30 13:11:38 +08:00
    @vate32 会对 JSON 里的字段进行过滤之类的操作么
    jonathanchoo
        7
    jonathanchoo  
       2021-12-30 13:45:40 +08:00
    用了 select column->'$.xxx'还不错
    AngryPanda
        8
    AngryPanda  
       2021-12-30 13:49:43 +08:00 via iPhone
    用过,但是还是觉得能拆字段尽量拆字段吧
    FrankAdler
        9
    FrankAdler  
       2021-12-30 13:50:07 +08:00
    php 的 xhprof 做了 pdo 支持,用到了 json 查询,性能一般,但是好过 like
    vate32
        10
    vate32  
       2021-12-30 14:25:58 +08:00
    @shanghai1943 我的意思是,会用 json 存储一些不怎么重要,会频繁变动,但又不想一直修改数据库字段的信息,比如某些查询任务的过滤条件。
    Chinsung
        11
    Chinsung  
       2021-12-30 17:40:31 +08:00
    没用过,但是 psql 之前用过 json 字段。
    这种东西,你在代码里不太可能根据 json 的字段去查,所以本质上使用起来和你自己定义一个 varchar 字段里面存 json 是一样的。
    Saurichthys
        12
    Saurichthys  
       2021-12-30 17:49:35 +08:00
    json 特性不是 5..7 就有了么
    onhao
        13
    onhao  
       2021-12-31 09:46:16 +08:00
    有的 :例如 https://wuhao.pw/archives/244/
    会简化很多操作, 很多功能 不需要写程序,直接 sql 搞定,随着 mysql 8 的普及,以及 json 的流行 使用的场景也会更常见和频繁。
    yeyu
        14
    yeyu  
       2021-12-31 13:50:11 +08:00
    没用,生产 json 类型都丢 NoSql 数据库
    zed1018
        15
    zed1018  
       2021-12-31 14:29:29 +08:00
    我用了,就那样吧,操作挺麻烦的。几个 json function 都不是很好用。跟 postgres 比差太多
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   955 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:21 · PVG 03:21 · LAX 11:21 · JFK 14:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.