19个mysql性能优化要点解析(优化体系--详解MySQL)
19个mysql性能优化要点解析(优化体系--详解MySQL)
2024-11-22 04:51:56  作者:爱迩不后悔  网址:https://m.xinb2b.cn/life/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-11-22西樵山发布征名令3月31日,南海西樵山风景名胜区管委会等发出《南海樵山文化中心(暂名)征名启事》,设奖金就南海樵山文化中心(暂名)面向社会各界征名入围作品分别可以获得500-5000元不等的奖励,并颁发证书据介绍,南。
  • 太原迎泽大桥长宽度是多少 太原迎泽大桥迎来6小时
  • 2024-11-22太原迎泽大桥长宽度是多少 太原迎泽大桥迎来6小时山西晚报讯(记者薛建英)8月8日,山西晚报记者从太原市市政公共设施建设管理中心了解到:该中心桥梁养护管理所近日对迎泽大桥展开了一次耗时约6小时的“体检”,调用12辆重型车上桥进行荷载试验此次“体检”收。
  • 征迁前后的留恋(同样都是征迁为何)
  • 2024-11-22同样都是征迁为何已经停工的荷叶塘园区市政设施提升改造工程本报记者刘荒摄新华社北京10月12日电(记者刘荒)10月12日,《新华每日电讯》刊载题为《同样都是征迁,为何“东边日出西边雨”》的记者手记记者在义乌市福田街道采。
  • 三国演义人物选取欣赏(历史的尘埃浅谈三国演义的人物描写)
  • 2024-11-22历史的尘埃浅谈三国演义的人物描写《三国演义》一共写了四百多个(亦说是1191)人物,其中有几十个人物都个性鲜明,栩栩如生如张飞嫉恶如仇,粗豪爽直,而又从善入流;刘备仁厚爱民,虚伪做作;关羽神武神勇,讲究忠义却刚愎自用;周瑜才高果敢却。
  • madrid是哪里的
  • 2024-11-22madrid是哪里的马德里(西班牙语:Madrid)是西班牙首都及最大都市,也是马德里自治区首府,其位置处于西班牙国土中部,曼萨纳雷斯河贯穿市区,市内人口占西班牙首位。
  • 大学生香水使用方法(香水的正确用法)
  • 2024-11-22香水的正确用法使用香水的时候,你可以将香水喷在衣橱里,让蒸发的气体传染到你的衣服上,这样出门的时候就不要喷香水了,非常方便,不过不要喷太多,最多喷三下,如果喷多了,香味会太浓,影响嗅觉,一般香水能持续半天,好一点的。
  • 四线城市cbd有未来吗(澎湃北部都会区)
  • 2024-11-22澎湃北部都会区大潮澎湃新篇章香港擘画北部都会区,湾区雀跃,全球聚焦!香港为何蹦出如此史无前例的大动作?雄心勃勃的拟打造北部科创中心?将给深圳CBD带来怎么的能级浪潮?剧烈超能北扩,一石激起千层浪!这是香港百年来,首。
  • 红枣苹果燕窝 红枣苹果炖雪燕
  • 2024-11-22红枣苹果燕窝 红枣苹果炖雪燕什么是雪燕?#9月吃什么#雪燕!可能很朋友不太熟悉,不能从名字就轻易的判断其是燕窝它是一种珍贵的植物一雪燕树的木髓(树干深部分泌出来的汁液形成),生长在我国云南大山深处,远离污染!它也是个偶然的发现,。
  • 张译电影搞笑生死线(张译朋友翻唱经典)
  • 2024-11-22张译朋友翻唱经典陈可辛监制、开心麻花联合出品、吴君如导演的贺岁喜剧《妖铃铃》今日发布推广曲《朋友》MV这首国语版的《朋友》改编自谭咏麟同名粤语金曲,由影片主演张译重新填词,导演吴君如领衔主演沈腾、张译、特别介绍pap。
  • 诗词写作口诀表(诗词写作指导文章)
  • 2024-11-22诗词写作指导文章《笠翁对韵》全文声律启蒙必备,珍藏版!《笠翁对韵》是从前人们学习写作近体诗、词,用来熟悉对仗、用韵、组织词语的启蒙读物作者李渔(明末清初著名戏曲家),号笠翁,因此叫《笠翁对韵》全书分为卷一和卷二按韵分。
  • 小米五款新品各有千秋(小米十周年一堆神作发布)
  • 2024-11-22小米十周年一堆神作发布今晚19:30,在经典的小米铃声伴随下小米10周年主题演讲会正式召开这是小米创始人雷军的首场个人公开演讲,也是小米在今年召开的第一场线下发布会而从发布会前小米官方大手笔的宣传造势,再到接近3小时的发布。