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

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

内容简介:本文所有实验基于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 索引失效及使用索引的优缺点

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


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

查看所有标签

猜你喜欢:

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

啊哈C语言!逻辑的挑战(修订版)

啊哈C语言!逻辑的挑战(修订版)

啊哈磊 / 电子工业出版社 / 2017-1 / 49

《啊哈C语言!逻辑的挑战(修订版)》是一本非常有趣的编程启蒙书,《啊哈C语言!逻辑的挑战(修订版)》从中小学生的角度来讲述,没有生涩的内容,取而代之的是生动活泼的漫画和风趣幽默的文字。配合超萌的编程软件,《啊哈C语言!逻辑的挑战(修订版)》从开始学习与计算机对话到自己独立制作一个游戏,由浅入深地讲述编程的思维。同时,与计算机展开的逻辑较量一定会让你觉得很有意思。你可以在茶余饭后阅读《啊哈C语言!逻......一起来看看 《啊哈C语言!逻辑的挑战(修订版)》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具