mysql索引优化实战(举例说明)---mysql详解(代码片段)

如月之恒- 如月之恒-     2022-12-19     636

关键词:

文章目录

案例

用例表结构

CREATE TABLE `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `c1` varchar(10) COLLATE utf8mb4_bin DEFAULT NULL,
  `c2` varchar(10) COLLATE utf8mb4_bin DEFAULT NULL,
  `c3` varchar(10) COLLATE utf8mb4_bin DEFAULT NULL,
  `c4` varchar(10) COLLATE utf8mb4_bin DEFAULT NULL,
  `c5` varchar(10) COLLATE utf8mb4_bin DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_test_c1234` (`c1`,`c2`,`c3`,`c4`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

分析以下用例的索引使用情况

case 1

case 2

case 2.1

case 2.2

这种情况就很有可能是由于该表数据量少,mysql自己做了优化,mysql认为走全表扫描比索引更快。

case 3

case 3.1

case 3.2

case 4

case 4.1

case 4.2

case 4.3

这条sql实际上C2字段并不需要排序,因为c2=‘a2’,所以order by c3,c2实际上是order by c3

case 5

group by实际上在执行时会先进行order by

case 5.1

case 6


如上图所示,查询条件联合索引的第一个字段尽量用“=”去查询。

case 7

case 8

  • 文章是个人知识点整理总结,如有错误和不足之处欢迎指正。
  • 如有疑问、或希望与笔者探讨技术问题(包括但不限于本章内容),欢迎添加笔者微信(o815441)。请备注“探讨技术问题”。欢迎交流、一起进步。

mysql索引及优化

...ql5.多表综合练习sql5.1内连接5.2外连接5.3自连接5.4子查询6.索引6.1为什么InnoDB存储引擎使用B+Tree索引结构6.2索引分类6.3索引语法6.4索引-查看执行频次6.5索引-性能分析6.6profile详情6.7 查看详情

mysql优化之索引优化

...;MoneyTalks on2012/02/23|第一篇序章第二篇连接优化第三篇索引优化第四篇查询优化第五篇到实战中去索引优化索引优化涉及到几个方面,包括了索引的类型、如何让查询使用索引,查询是索引算法的选择等等操作。(原文链接http:... 查看详情

mysql实战篇之mysql为什么会选错索引?--02(代码片段)

Mysql实战篇之Mysql为什么会选错索引?--02引言优化器的逻辑索引选择异常和处理小结引言MySQL中一张表其实是可以支持多个索引的。但是,你写SQL语句的时候,并没有主动指定使用哪个索引。也就是说,使用哪个索引是... 查看详情

day811.mysql调优之索引:索引的失效与优化-java性能调优实战(代码片段)

MySQL调优之索引:索引的失效与优化Hi,我是阿昌,今天学习记录的是关于MySQL调优之索引:索引的失效与优化。一、MySQL索引存储结构索引是优化数据库查询最重要的方式之一,它是在MySQL的存储引擎层中实现... 查看详情

mysql索引及优化实战(代码片段)

MySQL索引类型从物理存储角度上,索引可以分为聚集索引和非聚集索引。1.聚集索引(ClusteredIndex)聚集索引决定数据在磁盘上的物理排序,一个表只能有一个聚集索引。2.非聚集索引(Non-clusteredIndex)非聚... 查看详情

mysql优化之查询优化

...;MoneyTalks on2012/02/24|第一篇序章第二篇连接优化第三篇索引优化第四片查询优化第五篇到实战中去查询优化查询优化涉及到用户查询数据时使用到的索引、排序、group等操作,以及其书写习惯。(原文链接http://ddbiz.com/?p=990)影响... 查看详情

mysql优化之连接优化

...;MoneyTalks on2012/02/23|第一篇序章第二篇连接优化第三篇索引优化第四篇查询优化第五篇到实战中去连接优化连接优化主要指客户端连接数据库以及数据库为响应客户端的请求而打开数据表和索引的过程中涉及到的参数调整。原... 查看详情

「mysql高级实战篇」10分钟探索mysql索引原理,设计原则(代码片段)

点击上方关注“终端研发部”设为“星标”,和你一起掌握更多数据库知识MySQL,一个熟悉又陌生的名词,早在学习Javaweb的时候,我们就用到了MySQL数据库,在那个阶段,MySQL对我们来说似乎只是一个存储... 查看详情

mysql进阶实战7,查询的执行过程(代码片段)

...化count()、max()、min()5、预估并转化为常量表达式6、覆盖索引扫描7、提前终止查询五、MySQL如何执行关联查询六、查询执行引擎七、分页MySQL进阶实战系列文章哪吒精品系列文章一、拆分查询将大查询拆分成小查询,每个查询... 查看详情

掌门mysql数据库规约落地及优化实战(代码片段)

...果存储读取这个大的数据列,会额外消耗更多的IO 1.索引最大 查看详情

数据库索引原理及优化(代码片段)

一、摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全... 查看详情

数据库索引原理及优化(代码片段)

...。一、摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,... 查看详情

mysql索引优化

MySQL索引优化一、优化索引的方法二、优化步骤前缀索引优化覆盖索引优化主键索引最好是自增的索引最好设置为NOTNULL防止索引失效总结一、优化索引的方法这里说一下几种常见优化索引的方法:前缀索引优化;覆盖索... 查看详情

mysql索引优化

MySQL索引优化一、优化索引的方法二、使用步骤前缀索引优化覆盖索引优化主键索引最好是自增的索引最好设置为NOTNULL防止索引失效总结一、优化索引的方法这里说一下几种常见优化索引的方法:前缀索引优化;覆盖索... 查看详情

mysql优化之索引篇:explain工具(代码片段)

...个explain可以把SELECT的执行过程都列出来,包括哪些用了索引,哪些没用索引,哪些查询是全表查询,哪些是索引查询等.使用效果如下图:概要描述列名说明id执行编号,标识select所属的行。如果在语句中没子查询或关联查询,只... 查看详情

项目中常用的19条mysql优化

...句至少要达到range级别。杜绝出现all级别key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式key_len列,索引长度rows列,扫描行数。该值是个预估值extra列,详细说明。注意常见的不太友好的值有: 查看详情

mysql索引优化&参数优化

MySQL、索引优化&参数优化MySQL、索引优化&参数优化1.对查询进行优化应尽量避免全表扫描,首先应考虑在where及orderby涉及的列上建立索引。2.应尽量避免在where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进... 查看详情

java架构之路-(面试篇)mysql面试大全

...我还会给出一个关于mysql面试优化的试题,这里主要说的索引和B+Tree结构,很少提到我们的集群配置优化方案。1.索引是什么?有什么作用以及缺点  答:索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可... 查看详情