MySQL 索引失效及使用索引的优缺点

栏目: 数据库 · 发布时间: 6年前

内容简介:本文所有实验基于MySQL5.7.21,实验将会用到Explain工具,不了解的同学可参考此文章:联合索引失效先创建一个包含三个字段的联合索引,索引顺序如下:

本文所有实验基于 MySQL 5.7.21,实验将会用到Explain工具,不了解的同学可参考此文章: MySQL性能优化神器Explain详解

联合索引失效

先创建一个包含三个字段的联合索引,索引顺序如下:

MySQL 索引失效及使用索引的优缺点

由以下三张图的key_len字段我们可以得出三个索引的长度分别为:title长303,author长122,price长5.

MySQL 索引失效及使用索引的优缺点

MySQL 索引失效及使用索引的优缺点

MySQL 索引失效及使用索引的优缺点

联合索引使用时遵循最左匹配原则,如果不是从最左列开始时,整个索引失效,如果最左匹配则依次往右使用索引,直到碰到不匹配的地方之后生效之前匹配到的索引

MySQL 索引失效及使用索引的优缺点

MySQL 索引失效及使用索引的优缺点

范围查询会引起索引失效

为以上联合索引更换字段顺序为title,price,author。如果查询时包含范围查询则范围字段后面的字段失效

MySQL 索引失效及使用索引的优缺点

like查询失效

使用模糊查询时,%只有在最右方的时候才能生效

为title设置一个单独的索引

MySQL 索引失效及使用索引的优缺点

MySQL 索引失效及使用索引的优缺点

MySQL 索引失效及使用索引的优缺点

查询中含有不等于或者or则索引不生效

MySQL 索引失效及使用索引的优缺点

MySQL 索引失效及使用索引的优缺点

MySQL 索引失效及使用索引的优缺点

在索引列上做计算或函数导致失效

删除刚才创建的联合索引,为price字段创建一个单独的索引

MySQL 索引失效及使用索引的优缺点

MySQL 索引失效及使用索引的优缺点

字符串类型不加引号同样会失效

MySQL 索引失效及使用索引的优缺点

is null和 is not null

为title字段创建一个单独的索引

MySQL 索引失效及使用索引的优缺点

MySQL 索引失效及使用索引的优缺点

注意事项

在进行索引使用测试时,可能会因为测试数据太少从而MySQL会认为查询语句走全表扫描比走索引更有效,所以会自动去除索引,为避免测试结果误导可使用如下方式强制MySQL使用索引

explain select * from book FORCE index(索引名称) where price=1+1;

使用索引的优点

  • 唯一索引或主键索引可以保证数据库表的唯一性

  • 可以提高查询效率和性能

  • 加速表连接的速度

  • 加快 排序 的效率

使用索引的缺点

  • 每次更新修改删除都需要维护索引、从而消耗性能

  • 索引文件会占用物理空间

MySQL 索引失效及使用索引的优缺点

万水千山总是情,点个 “在看” 行不行!!!


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

引爆点

引爆点

[美] 马尔科姆·格拉德威尔 / 钱清、覃爱冬 / 中信出版社 / 2006-1 / 29.80元

这本书是《纽约客》杂志专职作家马尔科姆·格拉德威尔的一部才华横溢之作。他以社会上突如其来的流行风潮研究为切入点,从一个全新的角度探索了控制科学和营销模式。他认为,思想、行为、信息以及产品常常会像传染病爆发一样,迅速传播蔓延。正如一个病人就能引起一场全城流感;如果个别工作人员对顾客大打出手,或几位涂鸦爱好者管不住自己,也能在地铁里掀起一场犯罪浪潮;一位满意而归的顾客还能让新开张的餐馆座无虚席。这些现......一起来看看 《引爆点》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具