写点什么

MySQL 基础之十五:索引

用户头像
打工人!
关注
发布于: 2021 年 06 月 17 日
MySQL基础之十五:索引

主要内容:

本篇内容主要讲解索引的基本知识,注意只是最基础的东西,索引的内容很多,还挺重要,建议大家寻找别的东西进行深入了解。

索引:

首先要搞清楚索引是什么?它有什么作用?

通俗的来说,索引其实就是想当于一本书的目录,通过目录,可以快速地定位到对应的资源,一般就是表中的记录。

在数据库中,查询一张表,有两种方式:

第一种方式:全表进行扫描,如果表中的记录非常多,那么效率就非常低。

第二种方式:根据索引进行检索,效率高,因为缩小了扫描范围。

添加索引是给一个字段或者某些字段添加索引。

何时添加索引:

那么什么时候该给字段添加索引呢?

  • 当数据量比较庞大的时候,这个时候,如果使用全表扫描的方法进行查询,那耗时就太大了。

  • 该字段很少进行 DML 操作,这是因为对字段进行修改操作,索引也要跟着被维护,耗时啊。

  • 该字段经常出现在 where 子句中。

小贴士:索引不是乱加的,如果太多的字段被添加为索引,结果可能适得其反。

主键和具有 unique 约束的字段会被数据库自动添加为索引

根据主键查询效率很高

查看 sql 语句的执行计划:

可以通过查看 sql 语句的执行计划,来查看 sql 语句别数据库系统解析后,是如何执行的,用到哪些索引。

mysql>explain select ename,sal from emp where sal=5000;

如何创建索引,删除索引:

create index 索引名称 on 表名(字段名);

drop index 索引名称 on 表名;

索引底层技术:

采用的数据结构是:B+树

索引分类:

  • 单一索引:给单个字段添加索引

  • 复合索引:给多个字段联合起来添加为 1 个索引

  • 主键索引:主键上会自动添加为索引

  • 唯一索引:有 unique 约束的字段会自动添加索引。

索引也有失效的时候,虽然某个字段被添加了索引,但是在查询的时候,如果条件不符合,也是不会用索引来进行查询的。


发布于: 2021 年 06 月 17 日阅读数: 12
用户头像

打工人!

关注

打工人! 2019.11.10 加入

InfoQ年度最佳内容获得者。 InfoQ签约作者 本人打工人一枚,自动化和控制专业入坑人一枚。目前在研究深度强化学习(DRL)技术。准备入坑互联网小白一枚。喜欢了解科技前沿技术,喜欢拍照。

评论

发布
暂无评论
MySQL基础之十五:索引