位置: 编程技术 - 正文
推荐整理分享简单谈谈MySQL5.7 JSON格式检索(简单谈谈设计与市场的关系),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:简单谈谈对中国电信的认识,简单谈谈你对会计的理解或认识,简单谈谈你对中国国防建设的认识,简单谈谈你曾经静下心来专心读某本书的体会,简单谈谈设计与市场的关系,简单谈谈为什么要入党,简单谈谈设计与市场的关系,简单谈谈你曾经静下心来专心读某本书的体会,内容如对您有帮助,希望把文章链接给更多的朋友!
MySQL5.7版本开始支持JSON格式,在创建表时,可以指定列表的数据类型为JSON,但是如何在JSON格式上创建索引呢??
本人做了一个简单测试。
第一步:建立一个包含JSON类型的表:
第二步:初始化数据
第三步:查询JSON类列的数据
select json_extract(content, '$.name' ) from json_test where json_extract(content, '$.name' )= "zhangsan" ;
通过expain分析改查询语句,发现其走全表扫描
在网上查询资料,得知如果要在JSON列上进行检索,需要对检索的key创建虚拟列,然后再虚拟列上创建索引
第四步:在content列上,对"name"建立虚拟列
ALTER TABLE json_test ADD name_virtual varchar () GENERATED ALWAYS AS (json_extract(content, '$.name' )) VIRTUAL;
第五步:对虚拟列创建索引
CREATE INDEX name_virtual_index ON json_test(name_virtual);
再次做查询( 注,where条件需要使用虚拟列来进行检索,如果直接用JSON列比较,还是会走全表扫描 )
explain select json_extract(content, '$.name' ) from json_test where name_virtual= "zhangsan" G
总结:
其实MySQL通过一种空间换时间的做法,类似创建一个触发器,把JSON列上的数据冗余存储到虚拟列上,比较的时候通过走虚拟列的索引,再定位到实际数据。
浅谈MySQL数据库的备份与恢复 一、MySQL常见的备份方式1.直接拷贝数据库文件(物理拷贝)2.使用mysqldump工具备份3.使用mysqlhotcopy工具备份4.使用mysql的主从同步复制,实现数据实时同步备
Innodb表select查询顺序 今天知数堂一个学生反馈说在优化课中老师讲Innodb是以主键排序存储,读取的时间以主键为顺序读取,但发现个例外,如下:CREATETABLEzst_t1(uidint()NOTNULL
centos 6下安装innodb_ruby innodb_ruby是jeremycole的一个用于分析Innodb相关结构的一个程序,也是非常方便我们研究Innodb的结构工具。所以这里做一个介绍。jeremycolegithub里的分享的项
标签: 简单谈谈设计与市场的关系
本文链接地址:https://www.jiuchutong.com/biancheng/349850.html 转载请保留说明!上一篇:MySQL5.6 数据库主从同步安装与配置详解(Master/Slave)(mysql数据库主键怎么设置)
下一篇:浅谈MySQL数据库的备份与恢复(mysql数据库技术介绍)
友情链接: 武汉网站建设