19个mysql性能优化要点解析(优化体系--详解MySQL)
19个mysql性能优化要点解析(优化体系--详解MySQL)
2024-09-27 03:47:53  作者:爱迩不后悔  网址:https://m.xinb2b.cn/tech/nna490580.html
概述

我们都知道where条件如果在字段上带了函数就不会去走索引,不好优化,无意间了解到mysql一个新特性--虚拟列,专门处理这块问题的,下面一起来了解下吧~

Generated Column

在MySQL 5.7中,支持两种Generated Column,即Virtual Generated Column和Stored Generated Column,前者只将Generated Column保存在数据字典中(表的元数据),并不会将这一列数据持久化到磁盘上;后者会将Generated Column持久化到磁盘上,而不是每次读取的时候计算所得。很明显,后者存放了可以通过已有数据计算而得的数据,需要更多的磁盘空间,与Virtual Column相比并没有优势,因此,MySQL 5.7中,不指定Generated Column的类型,默认是Virtual Column。

如果需要Stored Generated Golumn的话,可能在Virtual Generated Column上建立索引更加合适。综上,一般情况下,都使用Virtual Generated Column,这也是MySQL默认的方式

语法

<type> [ GENERATED ALWAYS ] AS ( <expression> ) [ VIRTUAL|STORED ][ UNIQUE [KEY] ] [ [PRIMARY] KEY ] [ NOT NULL ] [ COMMENT <text> ]

应用场景

假设有一个表,其中包含一个 date 类型的列 `SimpleDate` date

SimpleDate 是一个常用的查询字段,并需要对其执行日期函数,例如

SELECt ... WHERe dayofweek(SimpleDate) = 3 ...

此时的问题是 即使对 SimpleDate 建立索引,这个查询语句也无法使用,因为日期函数阻止了索引。

为了提高查询效率,通常要进行额外的操作,例如新建一个字段 SimpleDate_dayofweek,存放 dayofweek(SimpleDate) 的计算结果,然后对这列创建索引,SimpleDate_dayofweek 的值需要程序写入,例如使用触发器,在 SimpleDate 有变动时更新这样查询就可以改为

3、构建姓名的虚拟列

alter table user add user_name varchar(20) generated always as (data->'$.name');


4、构建索引

alter table user add index idx_name(user_name);


5、测试是否用到索引

explain select * from user where user_name='"hwb"' \G;


可以看出用了索引了

6、插入新数据

此时的表的结构由于多出了user_name这一虚拟列,再插入别的数据要注意在表后指明插入列(不能给虚拟列插入数据)

insert into user(uid,data) values (NULL,'{"name":"test","address":"shantou"}');


做完发现这个实验好像不是那么好理解...应该对比一下加不加虚拟列有没走索引,可能会更容易让大家理解的...后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~


  • 勇敢的心刘芊含饰几个角色(刘芊含宸汐缘热播)
  • 2024-09-27刘芊含宸汐缘热播近日,《宸汐缘》中备受关注的“翎月国主”刘芊含在微博写道:“伏天,宜运动发汗”照片中,刘芊含素颜出镜,在阳台上逆光而站,脖子与脸颊上大粒的汗珠肉眼清晰可见,俨然一副刚刚结束运动的状态,惬意而安适由刘芊。
  • 电动车鼓刹和碟刹哪个耐用?电动车鼓刹碟刹
  • 2024-09-27电动车鼓刹和碟刹哪个耐用?电动车鼓刹碟刹电动车作为一种便捷、环保、实惠的出行代步工具,被越来越多的老百姓购买使用,不过无论哪种交通工具,安全出行是最重要的一点在电动车的驾驶过程中,制动系统是较为关键的一部分,和车主的生命安全息息相关,每天由。
  • 小米手机如何消除系统广告(小米手机一键去除广告和全家桶)
  • 2024-09-27小米手机一键去除广告和全家桶小米手机在国产手机里面是可以的,都有卖四五千元的高端机了,走高端技能路线去了,性价比就留给红米手机了,但是都一样,系统原生内置了许多广告,加上安装的一些软件,广告真是无孔不入,可能大部人都习惯了各种A。
  • 宝积经的原文(颂化经之前言)
  • 2024-09-27颂化经之前言《颂化经》之《前言》作者翟翔鑫编者按:2018年7月18日在郑州,由中国博爱煜和平国际文化交流中心主办的坚定文化自信一一共臻《颂化经》研讨会上通过了堪称字字珠玑的共计1672个字的经文暨文若春华的。
  • 立邦刷墙注意事项(翻新墙面要注意些什么)
  • 2024-09-27翻新墙面要注意些什么随着居住时间的增加,我们的家也会出现老化的现象,尤其是墙面,在岁月的侵蚀下会出现各种各样的问题,脱落的墙皮、斑斑点点的霉迹、断断续续的水渍,甚至还有因为开裂而出现的裂缝等等为了让我们住得更加舒适,翻新。
  • 体育一词的由来(体育的起源)
  • 2024-09-27体育的起源体育一词最早出现在1762年出版的卢梭的《爱弥尔》一书中意思是身体的教育以后,又有德国、丹麦、瑞典的号称体育之父的先驱者们,著书立说,形成一套较完整的体操练身体系1868年,日本从欧洲引进了体操一词,。
  • 机器学习面试题精选连载(机器学习面试题精选连载)
  • 2024-09-27机器学习面试题精选连载本期继续连载数学基础的最后一部分:概率论,包括基础概念、似然、最大似然估计、概率分布衡量等至此数学基础知识就介绍完啦,下次开始介绍具体的模型算法《机器学习基础知识手册》总结了更多的问题,欢迎访问git。
  • 舞狮子是哪里的特色
  • 2024-09-27舞狮子是哪里的特色舞狮,又称“狮子舞”、“狮灯”、“舞狮子”,多在年节和喜庆活动中表演狮子在中国人心目中为瑞兽,象征着吉祥如意,从而在舞狮活动中寄托着民众消灾除害、求吉纳福的美好意愿舞狮历史久远,《汉书·礼乐志》中记载。
  • 长安车使用感受(6年长安用户为何执着再换长安车)
  • 2024-09-276年长安用户为何执着再换长安车近日,重庆市鼓励汽车更新换代工作已经圆满结束,而当我们翻阅此次“以旧换新”活动统计数据,发现了一些有趣的事实,比如涪陵区市民换车非常积极,补助总数达197个排在全市所有区县第一位;又如,长安汽车成为了。
  • letv y1评测 硬件过剩时代的轻量化选择--Letv
  • 2024-09-27letv y1评测 硬件过剩时代的轻量化选择--Letv先说两句传统家电中,电视是生活中不可或缺的一块,也是投入非常大的一块,例如我结婚那会买的彩电,价格高达13000的次旗舰已经用到现在,即使现在来看依然不算落伍,而新技术的层出不穷,技术更新迭代,更多的。
  • 魔兽怀旧服副本的任务在哪接(副本钥匙任务指南)
  • 2024-09-27副本钥匙任务指南1.血色修道院的钥匙血色修道院副本入口共有四处,各不相通进入修道院大厅,在你的左、左前、右前、右四个方向各有个道门但是左前和右前芳的门需要血色十字军钥匙才能打开,钥匙就位于右方副本内进入后一路杀到底,。