返回顶部
首页 > 资讯 > 数据库 >mysql存储json类型方法和利弊
  • 649
分享到

mysql存储json类型方法和利弊

mysqljsonmybatis 2023-09-04 06:09:54 649人浏览 薄情痞子
摘要

利弊 一、JSON类型的特性 1、保证了jsON数据类型的强校验,JSON数据列会自动校验存入此列的内容是否符合JSON格式,非正常格式则报错,而varchar类型和text等类型本身是不存在这种机制

利弊

一、JSON类型的特性
1、保证了jsON数据类型的强校验,JSON数据列会自动校验存入此列的内容是否符合JSON格式,非正常格式则报错,而varchar类型和text等类型本身是不存在这种机制的。

Mysql同时提供了一组操作JSON类型数据的内置函数。

优化的存储格式,存储在JSON列中的JSON数据会被转成内部特定的存储格式,允许快速读取。

可以基于JSON格式的特征支持修改特定的键值。(即不需要把整条内容拿出来放到程序中遍历然后寻找替换再塞回去,mysql内置的函数允许你通过一条sql语句就能搞定)

二、优点缺点
优点:
1、不需要设计复杂的关系表。
2、提高开发的效率。
3、可以任意的增减字段而无需修改数据表结构,甚至可以减少数据表的设计。
4、保存数据方便,只需要组装成数组
5、可以减少数据表的查询,减少关联查询,一个查询的结果就可以代替几个查询的结果,降低数据库服务器的压力。

缺点:
1、从json中去统计某个字段数据之类的很麻烦,而且效率低。
2、查询相对效率较低,操作复杂。
3、更新其中某个字段效率较低,不适合存储业务逻辑复杂的数据。
4、统计数据复杂,建议需要做报表的数据不要存json。

总结:如果不需要根据json来统计数据或者局部更新json,仅是简单的读取或者整体覆盖,对于需要存取一个很大的有结构的数据,那json是较佳选择。大道至简!

使用方法

表字段类型为json

实体类上方加注解,否则会查不出来值

@TableName(autoResultMap = true)

关于autoResultMap的说明:

mp会自动构建一个ResultMap并注入到mybatis里(一般用不上).下面讲两句: 因为mp底层是mybatis,所以一些mybatis的常识你要知道,mp只是帮你注入了常用crud到mybatis里 注入之前可以说是动态的(根据你entity的字段以及注解变化而变化),但是注入之后是静态的(等于你写在xml的东西) 而对于直接指定typeHandler,mybatis只支持你写在2个地方:

定义在resultMap里,只作用于select查询的返回结果封装
定义在insert和updatesql的#{property}里的property后面(例:#{property,typehandler=xxx.xxx.xxx}),只作用于设置值 而除了这两种直接指定typeHandler,mybatis有一个全局的扫描你自己的typeHandler包的配置,这是根据你的property的类型去找typeHandler并使用.

字段是加上注解 @TableField(typeHandler = JacksonTypeHandler.class)

@TableField(typeHandler = JacksonTypeHandler.class)
private JSONObject properties;

来源地址:https://blog.csdn.net/weixin_43545045/article/details/129206125

您可能感兴趣的文档:

--结束END--

本文标题: mysql存储json类型方法和利弊

本文链接: https://lsjlt.com/news/392998.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • mysql存储json类型方法和利弊
    利弊 一、json类型的特性 1、保证了JSON数据类型的强校验,JSON数据列会自动校验存入此列的内容是否符合JSON格式,非正常格式则报错,而varchar类型和text等类型本身是不存在这种机制...
    99+
    2023-09-04
    mysql json mybatis
  • mysql存储json字符串选什么类型
    mysql存储json字符串选JSON数据类型,其好处有:1、允许存储任意结构的JSON数据,不需要提前定义明确的模式;2、可以直接在MySQL中对JSON数据进行查询、过滤、排序和聚合操作;3、采用有效的压缩和优化技术,减少存储空间的占用...
    99+
    2023-08-02
  • java保存json类型数据到mysql数据库,mysql保存json类型数据
    1.首先在对应表添加一个json类型字段 2.在java对应的实体类添加对应的字段,重点是加上(typeHandler = JacksonTypeHandler.class)这个注解 不然的话保存...
    99+
    2023-09-04
    java mysql 数据库
  • 查看mysql中表存储引擎类型的方法
    查看mysql中表存储引擎类型的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!查看mysql中表的存储引擎类型的方法:...
    99+
    2024-04-02
  • 关于MYSQL中FLOAT和DOUBLE类型的存储
    关于MYSQL中FLOAT和DOUBLE类型的存储 其实在单精度和双精度浮点类型存储中其存储方式和C/C++一致准守IEEE标准他们都是浮点型的,所谓的浮点型,是小数点的位置可变,其能够表示的范围比定点...
    99+
    2024-04-02
  • MYSQL中怎么利用DATE实现数据类型存储
    这篇文章给大家介绍MYSQL中怎么利用DATE实现数据类型存储,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 MYSQL-数据类型存储-DATE on E...
    99+
    2024-04-02
  • php中将json数据存储到mysql的方法
    本篇文章给大家主要讲的是关于php中将json数据存储到mysql的方法的内容,感兴趣的话就一起来看看这篇文章吧,相信看完php中将json数据存储到mysql的方法对大家多少有点参考价值吧。  ...
    99+
    2024-04-02
  • 存储类型:DRAM、SRAM 和其他
    动态RAM (DRAM) DRAM 是最常见的计算机主存储器类型。它以较低的成本提供高容量,但需要定期刷新,这意味着存储的数据必须定期读取并写入回存储单元以防止其丢失。DRAM 的缺点是它具有相对较高的访问延迟,并且对刷新周期敏感。 静...
    99+
    2024-02-18
    DRAM SRAM 存储器类型 动态RAM 静态RAM 缓存 闪存 EEPROM
  • 浅谈Redis存储数据类型及存取值方法
    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合) String存取值: 是 redi...
    99+
    2024-04-02
  • mysql储存文字用什么类型
    这篇文章给大家分享的是有关mysql储存文字用什么类型的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。mysql存储文本时,使用以下三个类型。char长度固定,varchar和te...
    99+
    2024-04-02
  • 在Go和Laravel中使用NumPy数据类型的利弊分析
    NumPy是Python中最流行的科学计算库之一。它提供了高效的数组操作和数学函数,可以用于处理大量的数值数据。然而,NumPy并不是Python中唯一的科学计算库。在本文中,我们将探讨。 Go是一门编译型语言,其设计目标是提高程序的可靠...
    99+
    2023-07-19
    numy laravel 数据类型
  • MySQL有哪些数据类型和存储机制原理
    本文主要给大家简单讲讲MySQL有哪些数据类型和存储机制原理,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望MySQL有哪些数据类型和存储机制原理这篇文章可以...
    99+
    2024-04-02
  • MySQL数据类型和存储机制的示例分析
    小编给大家分享一下MySQL数据类型和存储机制的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.1 数据类型概览数据类...
    99+
    2024-04-02
  • 浅谈Mybatis+mysql 存储Date类型的坑
    场景: 把一个时间字符串转成Date,存进Mysql。时间天数会比实际时间少1天,也可能是小时少了13-14小时 Mysql的时区是CST(使用语句:show VARIABLES LIKE '%time_zone%'...
    99+
    2022-05-25
    Mybatis mysql 存储Date类型
  • mysql存储图片是什么类型的
    mysql存储图片是BLOB、MEDIUMBLOB、LONGBLOB三种类型的。具体介绍:1、BLOB类型可以存储二进制数据,适合存储一些较小的图片,如头像、图标等;2、MEDIUMBLOB类型可以存储中等大小的二进制数据,适合存储一些稍大...
    99+
    2023-07-18
  • MySQL表类型 存储引擎 的选择
    目录1、查看当前数据库支出的存储引擎方法1:方法2:2、ENGINE={存储引起类型}  创建表的时候,设置存储引擎3、alter able tablename engin...
    99+
    2024-04-02
  • mysql存储引擎的类型有哪些
    MySQL存储引擎的类型有以下几种: InnoDB:支持事务处理,具有较好的性能和可靠性,适合大型数据库应用。 MyISAM:不支...
    99+
    2024-04-09
    mysql
  • html5类型的存储方式是什么
    这篇文章主要介绍了html5类型的存储方式是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇html5类型的存储方式是什么文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2024-04-02
  • mysql存储过程有哪些变量类型
    这篇文章主要讲解了“mysql存储过程有哪些变量类型”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql存储过程有哪些变量类型”吧! ...
    99+
    2024-04-02
  • mysql存储图片用的类型是什么
    这篇文章主要讲解了“mysql存储图片用的类型是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql存储图片用的类型是什么”吧! ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作