记工作日常 - mysql 使用json格式 被dba拒绝执行

首先,mysql版本在5.7以下是不支持json格式存储的;

若使用json格式存储数据,在使用生成实体类的工具得到的文件字段类型为 object;

场景:

今天准备项目上线,在archery-sql审核查询平台提交sql并进行审查,审查结果为

 not allowd json ..

询问dba 回复为 数据库支持 但不建议 使用json格式进行存储。

原因:

        不符合安全规范;

解决:

        后续使用varchar(500)格式  进行替换。


所以 json格式 真的存在安全隐患吗?

问了一圈度娘,优缺点并存,但不建议使用。

优点:

即使不使用 JSON类型,我们一样可以通过varchar类型或者text等类型来保存相关数据,但是,为什么还要专门增加这一数据格式的支持呢?其中肯定有较varchar或者text来存储此类型更优越的地方。

  • 保证了JSON数据类型的强校验,JSON数据列会自动校验存入此列的内容是否符合JSON格式,非正常格式则报错,而varchar类型和text等类型本身是不存在这种机制的。
  • MySQL同时提供了一组操作JSON类型数据的内置函数。
  • 更优化的存储格式,存储在JSON列中的JSON数据会被转成内部特定的存储格式,允许快速读取。
  • 查询性能提升:查询不需要遍历所有字符串才能找到数据;
  • 修改性能提升:可以基于JSON格式的特征支持修改特定的键值。(即不需要把整条内容拿出来放到程序中遍历然后寻找替换再塞回去,MySQL内置的函数允许你通过一条SQL语句就能搞定)
  • 支持索引:通过虚拟列的功能可以对JSON中的部分数据进行索引

https://www.cnblogs.com/captainad/p/11176127.html

缺点:

大概的意思都一样,就是性能问题,如果 体量大的值 一股脑存入json 会影响数据库性能;

以上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值