首页 > 数据库 >MySQL使用JSON存储数据

MySQL使用JSON存储数据

时间:2023-12-14 11:35:00浏览次数:36  
标签:存储 json 查询 数据表 JSON MySQL 字段 数据

1.优点

1.不用为数据中的每个key值新建一个字段,可以任意的增减字段而无需修改数据表结构,甚至可以减少数据表的设计。
2.可以减少数据表的查询,减少关联查询,一个查询的结果就可以代替几个查询的结果,降低数据库服务器的压力。

2.缺点

1、json数据仅仅只能用于展示display,如果用于条件查询,数据更新其效率是很低的,而且难于优化,不要尝试在json字段上进行查询优化。
2、虽然mysql5.7支持了json类型,但mysql作为关系型数据库,对标准化的column-per-value支持更好,包括数据类型限制、长度限制,唯一索引限制,查询索引优化,外键关联,关联查询支持,运算支持等,这些都是json中key无法达到的。
3、将常用的查询字段从json数据中剥离出来形成单独的字段,虽然可以改善查询问题,但你最好有先见之明,如果后期进行剥离就会涉及代码修改和数据迁移,遇到多版本的话,还可能出现数据冗余的问题,处理不好还会出现数据不一致问题,并不仅仅这么简单,一定慎用。
4、存储json的text类型性能并不乐观。
5、大JSON的解析性能同样不乐观,而且对于中文数据,纯JSON太占空间了

标签:存储,json,查询,数据表,JSON,MySQL,字段,数据
From: https://www.cnblogs.com/lwx11111/p/17900838.html

相关文章

  • 使用NineData,轻松完成阿里云RDS MySQL至ClickHouse数据迁移
    云数据库RDSMySQL和云数据库ClickHouse是阿里云推出的两个备受欢迎的数据库解决方案,它们为用户提供了可靠的数据存储方案、分析数仓方案,本文介绍如何快速将RDSMySQL的数据同步到云数据库ClickHouse。如何快速将RDSMySQL的数据同步到云数据库为什么要将RDSMySQL的......
  • mysql_repl - 轻便型的MySQL binlog replication tool
    mysql_repl-轻便型的MySQLbinlogreplicationtoolhttps://github.com/hcymysql/mysql_repl/使用场景:从MySQL8.0实时解析binlog并复制到MariaDB,适用于将MySQL8.0迁移至MariaDB不熟悉MySQL主从复制搭建的新手使用原理:把自己伪装成slave,从源master解析binlog并入库targetMySQL端......
  • MySQL左连接丢失null值的问题
    一、前言我们有的时候直接使用左连接查询,当右表不存在该数据的时候,是可以查出带有null的列。可是当在where条件中有右表相关的筛选条件时,我们惊奇的发现查询的结果不带null值了,换句话说就是查出来的结果比预期的少。二、错误复现以及解决方案1、右表不带筛选条件的查询sql相关......
  • 解决mysql的语句中group_concat长度限制问题
    在mysql中,有个函数叫“group_concat”,平常使用可能发现不了问题,在处理大数据的时候,会发现内容被截取了。其实MYSQL内部对这个是有设置的,默认不设置的长度是1024。查看默认配置showvariableslike"group_concat_max_len";模板返回是Variable_nameValuegroup_co......
  • 数据库选型:MySQL、PostgreSQL、MongoDB
    能够支撑实时业务的数据库,常见的数据库有:关系型数据库:MySQL、PostgreSQL,以及Oracle、DB2、MicrosoftSQLServer等非关系型数据库:MongoDB下面针对MySQL、PostgreSQL、MongoDB做对比分析。关于最受欢迎排行榜,该三类数据库处于前五位置,也是霸榜颇久。另外补充数据库市场份额如下......
  • excel_to_mysql过程(Excel数据转换到MySQL数据库当中)
    准备数据流图:在输入输出里面找到对应的类型:数据流图建好了接下来怎么将excel表格数据抽取到mysql当中去???####编辑excel输入:手机号改为数字类型,就没有.0了,主要是类型问题@@@@@@@@@@@@@@@@@@@@@@@建立mysqll连接,进行编辑表输出最后看一下原始数据:22个单元格,21条数据,和以上数据相符!!......
  • MySQL ERROR:Access denied for user `root`@`localhost` (using password:YES)
    背景  使用docker安装mysql5.7,容器显示正常启动,但始终本地或者远程都连接不上该数据库 定位原因  密码加密方式错误 解决方法   参考链接【1】https://www.cnblogs.com/beanmoon/p/3173924.html......
  • MySQL Update语句一个非常经典的“坑”
    起因最近好几次有开发同学在钉钉上问我,比如下图: 问题归纳起来就是:在MySQL里面update一条记录,语法都正确的,但记录并没有被更新…结论小结:在一条UPDATE语句中,如果要更新多个字段,字段间不能使用“AND”,而应该用逗号分隔。现象刚遇到这个问题的时候,我拿到这条语句直接在测试......
  • 【SpringBootWeb入门-12】MySQL-DDL-图形化工具
    1、章节前言上一篇文章我们讲解了MySQL的安装与配置,以及相关sql命令的执行操作,在演示这些sql语句的时候,我们都是在命令行当中进行操作的,在命令行当中敲写语句很不方便,主要原因有以下几点:无提示:命令行当中输入任何sql语句没有任何提示,全凭记忆,而且很容易敲错代码;操作繁琐:全部的......
  • 【Azure Key Vault】在Alteryx中使用Azure Key Vault存储账号和密码并实现无交互登录
    问题描述:需要在Alteryx中使用AzureKeyVault,Alteryx能将数据发布到Tableau,需要输入账号和密码,使用AzureKeyVault来替换这个输入账号和密码的过程,是否可以在alteryx中实现呢? 问题解答在AzureKeyVault的资料中,没有找到针对Alteryx的解决方案。但是AlteryxDataConnection......