数据库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 字段数据中文本,响应的虚拟字段会时时更新为最新的。
----------------------------------------=================以上是个人自己总结,可能只有自己看的懂。===================-------------------------------------------------------------
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库