数据库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内容 ... 
随机推荐
- pod资源的健康检查-readiness探针的httpGet使用
			livenessProbe:健康状态检查,周期性检查服务是否存活,检查结果失败,将重启容器 readinessProbe:可用性检查,周期性检查服务是否可用,不可用将从service的endpoint ... 
- 第三课:nodejs    npm和vue
			1.安装node js 2.node js给windows提供了一个可以直接执行js的环境{node提供翻译} 3.npm是包管理器 a.npm是nodejs的组成部分 b.管 包(package) ... 
- (数据科学学习手札141)利用Learn Git Branching轻松学习git常用操作
			1 简介 大家好我是费老师,Git作为世界上最流行的版本控制系统,可以说是每一位与程序打交道的朋友最值得学习的软件之一.除了管理自己的项目,如果你对参与开源项目感兴趣,那么Git更是联结Github. ... 
- Exchange 2019中启用自动转发到外部域
			今天遇到一个用户反映自动转发的邮件规则没有生效.检查了一下,邮件规则配置没有问题.用户邮箱也能正常收到邮件,但是就是没有转发出去.仔细检查邮件规则,转发的收件人是外部邮箱.Exchange出于安全考虑 ... 
- Windows LDAP加固之LDAP over SSL和通道绑定
			很多网络通信都可以用SSL来加密的,LDAP也不列外,同样可以用SSL加密. LDAPS使用的证书必须满足以下几个条件: 1.证书的增强性密钥用法中必须有服务器身份验证Server Authentic ... 
- UEC++ 代理/委托
			代理: 代理可以帮助我们解决一对一或是一对多的任务分配工作.主要可以帮助我们解决通知问题.我们可以通过代理完成调用某一个对象的一个函数,而不直接持有该对象的任何指针. 代理就是为你跑腿送信的,你可以不 ... 
- nginx配置文件中location的三个匹配规则定义
			#直接匹配网站根,通过域名访问网站首页比较频繁,使用这个会加速处理,官网如是说. #这里是直接转发给后端应用服务器了,也可以是一个静态首页 # 第一个必选规则 location = / { #prox ... 
- docker垃圾处理
			1 查找docker文件夹 find / -name docker 2 列举文件夹大小 du -h --time --max-depth=1 . df -h df -TH 3 Docker占用磁盘空间 ... 
- Elastic:使用Kafka部署Elastic Stack
- MongoDB  分片集群的用户和权限一般操作步骤
			步骤总结: 按照mongos路由.配置副本集服务,分片副本集服务的先后顺序关闭所有节点服务 创建副本集认证的key文件,复制到每个服务所在目录 修改每个服务的配置文件,增加参数 启动每个服务 创建账号 ... 
