mysql索引优化实战(举例说明)---mysql详解(三)

文章目录

  • 案例
    • 用例表结构
    • 分析以下用例的索引使用情况
      • case 1
      • case 2
      • case 2.1
      • case 2.2
      • case 3
      • case 3.1
      • case 3.2
      • case 4
      • case 4.1
      • case 4.2
      • case 4.3
      • case 5
      • case 5.1
      • case 6
      • case 7
      • case 8
  • 划重点(∩_∩)

案例

用例表结构

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

mysql索引优化实战(举例说明)---mysql详解(三)_第1张图片

case 2

mysql索引优化实战(举例说明)---mysql详解(三)_第2张图片

case 2.1

mysql索引优化实战(举例说明)---mysql详解(三)_第3张图片

case 2.2

这种情况就很有可能是由于该表数据量少,mysql自己做了优化,mysql认为走全表扫描比索引更快。
mysql索引优化实战(举例说明)---mysql详解(三)_第4张图片

case 3

mysql索引优化实战(举例说明)---mysql详解(三)_第5张图片

case 3.1

mysql索引优化实战(举例说明)---mysql详解(三)_第6张图片

case 3.2

mysql索引优化实战(举例说明)---mysql详解(三)_第7张图片

case 4

mysql索引优化实战(举例说明)---mysql详解(三)_第8张图片

case 4.1

mysql索引优化实战(举例说明)---mysql详解(三)_第9张图片

case 4.2

mysql索引优化实战(举例说明)---mysql详解(三)_第10张图片

case 4.3

这条sql实际上C2字段并不需要排序,因为c2=‘a2’,所以order by c3,c2实际上是order by c3
mysql索引优化实战(举例说明)---mysql详解(三)_第11张图片

case 5

group by实际上在执行时会先进行order by
mysql索引优化实战(举例说明)---mysql详解(三)_第12张图片

case 5.1

mysql索引优化实战(举例说明)---mysql详解(三)_第13张图片

case 6

mysql索引优化实战(举例说明)---mysql详解(三)_第14张图片
如上图所示,查询条件联合索引的第一个字段尽量用“=”去查询。
在这里插入图片描述

case 7

mysql索引优化实战(举例说明)---mysql详解(三)_第15张图片

case 8

mysql索引优化实战(举例说明)---mysql详解(三)_第16张图片

划重点(∩_∩)



本人程序媛一枚,因为离港澳较近,周末兼职港澳人肉代购。

欢迎各位大佬添加本人微信,还会经常有点赞活动送价值不菲的小礼品哦。

即使现在不需要代购,等以后有了女(男)朋友、有了宝宝就肯定会需要的喽。

动动手指头,扫码一下,就当是对本博文的支持嘛,也是对一个平凡、勤劳、勇敢、秀外慧中等等优点的程序媛莫大的支持哈。
mysql索引优化实战(举例说明)---mysql详解(三)_第17张图片

你可能感兴趣的:(数据库)