数据库json字段类型总结
----------------------------------------=================以下是个人自己总结,可能只有自己看的懂。===================-------------------------------------------------------------
业务场景:
(1)因图书存在多种标签类型,如科幻,科技,自然等类似分类。如果采用数据库字段区分会造成表太大。到数据量达到千万级时,查询效果明显不行。
解决方案:
mysql5.7+以上版本提供了json数据类型,用来解决数据文本检索。
使用过程:
1.创建数据库字段为json类型
alter table ‘表名’ add '字段名' json null comment '测试json字段';
2.插入json格式数据
3.查询检查一下效果
explain select json -> '$.字段' from '表名' where json -> '$.字段' = '条件值'
4.实际场景中,一般我们都不会入场3查询。一般采用虚拟列来表示json字段中的列,这样方便于查询。创建虚拟列如下。
alter table ‘表名’
add column '虚拟字段名' carchar (50)
generated alawys as (json_unquote(json_extract(json,utf8mb4'$.json需要虚拟的字段'))) virtual null;
json_unquote 函数:去掉引号的功能 将原json串的引号去掉转成string类型
json_extract 函数:根据键查对象
5.当建好虚拟列之后就可以正常写SQL查询,如果修改了json 字段数据中文本,响应的虚拟字段会时时更新为最新的。
----------------------------------------=================以上是个人自己总结,可能只有自己看的懂。===================-------------------------------------------------------------
数据库json字段类型总结的更多相关文章
- 数据库中字段类型对应的C#中的数据类型
数据库中字段类型对应C#中的数据类型: 数据库 C#程序 int int32 text string bigint int64 binary System.Byte[] ...
- 【网络收集】数据库中字段类型对应C#中的数据类型
数据库中字段类型对应C#中的数据类型: 数据库 C#程序 int int32 text string bigint int64 binary System.Byte[] bit Boolean cha ...
- 数据库中字段类型对应C#中的数据类型
数据库中字段类型对应C#中的数据类型:数据库 C#程序 int int32 text string bigint int64 binary System.Byte[] bit Boolean char ...
- 数据库中字段类型对应的C#中的数据类型(转载)
数据库中字段类型对应C#中的数据类型: 数据库 C#程序 int int32 text string bigint int64 binary System.Byte[] ...
- JavaScript如何转换数据库DateTime字段类型?
Javascript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在html(标 ...
- SQL数据库中字段类型 与C#中的对应字段类型
数据库中的字段类型和对应的C#中的对应字段类型 数据库 C#程序int int32text stringbigint int64binary System.Byte[] ...
- 修改SQL数据库中表字段类型时,报“一个或多个对象访问此列”错误的解决方法
在SQL数据库中使用SQL语句(格式:alter table [tablename] alter column [colname] [newDataType])修改某表的字段类型时,报一下错误:由于一 ...
- mysql 5.7 json 字段类型查找、修改
修改 json 里的数组字段 mysql> set @json = '{"test": [{"name": "laravel"}, { ...
- mysql数据库修改字段类型
修改字段类型: alter table 表名 modify column 字段名字 decimal(18, 4) ;
- 数据库JSON字段设计思路
任务的阶段信息直接存储为JSON格式,这种格式避免了表关联,避免建表,应用层处理也简单的多了. 1. JSON内容为信息性质,而不具备非统计功能:简单讲就是展示,不能用于深度处理: 2. JSON内容 ...
随机推荐
- kingbaseES R3 集群修改data路径测试案例
案例说明: 默认KingbaseES R3集群部署后,数据存储目录(data)在/home/kingbase下,部署时不能更改:本案例是在部署完成后,迁移data目录到其他指定的存储位置. 数据库版本 ...
- git 根据历史 commitID 拉分支
1. git log -g 查看已commit的信息 2. 根据commit信息找到对应的commitID 3. 执行一下命令来创建新的分支 ### 1. 方法一:创建一个基于commitId的分支, ...
- DirectPV-----文章内容有待进一步实践完善
GitHub文档地址:https://github.com/minio/directpv DirectPV是用于直连存储的CSI驱动程序.从更简单的意义上讲,它是一个分布式持久卷管理器,而不是像SAN ...
- 配置Kubelet的垃圾回收
文章转载自:https://www.kuboard.cn/learning/k8s-advanced/gc.html Kubelet的垃圾回收功能可以清理不再使用的容器和镜像,kubelet对容器进行 ...
- Centos7主机安装Cockpit管理其他主机
前提条件:需要管理的每台服务器上都需要安装cockpit 假设Centos7主机安装Cockpit的为A,其他主机为B 如果B上有A的公钥,那么直接连接至B,否则,输入B的用户名密码连接. 问题:在A ...
- 4.maven私服nexus2迁移到nexus3
注意,本文讲解的是针对我们原来所用的nexus2.14.5版本的升级配置流程,如果您的老私服版本并不是这个,那么请先参考这里:升级兼容性 – Repository Manager 2到3.选定对应可升 ...
- 编码中的Adapter,不仅是一种设计模式,更是一种架构理念与解决方案
大家好,又见面了. 不知道下面这玩意大家有没有见过或者使用过?这是一个插座转换器.我们都知道日常使用的是220v的交流电,而国外不同国家使用的电流电压是不一样的(比如日本使用的是110v).且插座的接 ...
- 【原创】推流录屏软件OBS使用教程--录屏
之前有录屏需要,写了一篇关于ffmpeg录屏的文章,反响还不错,但是直接用ffmpeg门槛有些高,今天写一篇图形界面的录屏推流工具OBS的使用教程.这次先写OBS的录屏教程 下载安装 点击 OBS官网 ...
- python-函数-统计函数
#(1)amax(),amin() 作用:计算数组中的元素沿指定轴的最大值,最小值 import numpy as np x = np.random.randint(1,11,9).reshape(( ...
- Ubuntu 20.04安装mysql后用mysql root无法登录
刚安装mysql后,执行 mysql -u root -p 提示无法执行 解决方案: sudo mysql -u root -p 使用root权限不用密码就能进入mysql 然后 >ALTER ...