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

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

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

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


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

查看所有标签

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

为什么中国没出Facebook

为什么中国没出Facebook

谢文 / 凤凰出版社 / 2011-7-1 / 39.80元

《为什么中国没出Facebook》对互联网的游戏规则、市场、格局、模式及发展趋势等多方面进行了阐述,既勾画出了理想中的互联网生态及其本质,又联系中国实际,探讨了中国互联网行业的未来发展。《为什么中国没出Facebook》提出了在互联网成事应该符合的8条原则,比较了Facebook、MySpace、Twitter三种创新模式,指出了Web2.0平台时代新浪、腾讯、百度、搜狐等互联网巨头的未来方向,也......一起来看看 《为什么中国没出Facebook》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试