MySQL 下 INDEX(索引)的使用

Author Avatar
mgzu POST: 2019-07-28 UPDATED: 2019-07-28

MySQL 下 INDEX(索引)的使用

INDEX 是什么

写不下去了,简介原文于 https://www.runoob.com/mysql/mysql-index.html ,进行了一定的修改。

MySQL INDEX 的建立对于 MySQL 的高效运行是很重要的,INDEX 可以大大提高 MySQL 的检索速度。

打个比方,如果合理的设计且使用 INDEX 的 MySQL 是一辆兰博基尼的话,那么没有设计和使用 INDEX 的 MySQL 就是一个人力三轮车。

拿汉语字典的目录页(索引)打比方,我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找到需要的字。

INDEX 分单列索引和组合索引。单列索引,即一个 INDEX 只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个 INDEX 包含多个列。

创建 INDEX 时,你需要确保该 INDEX 是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。

实际上,INDEX 也是一张表,该表保存了主键与索引字段,并指向实体表的记录。

上面都在说使用 INDEX 的好处,但过多的使用 INDEX 将会造成滥用。因此 INDEX 也会有它的缺点:虽然 INDEX 大大提高了查询速度,同时却会降低更新表的速度,如对表进行 INSERT、UPDATE 和 DELETE。因为更新表时,MySQL 不仅要保存数据,还要保存一下索引文件。

建立 INDEX 会占用磁盘空间的索引文件。

索引类型

Normal

普通索引

Unique

唯一索引。当字段是唯一时使用,如用户名、手机号。

Full Text

全文搜索索引。用于搜索较长的文本,当较短的文本,使用普通索引即可。

索引方法

Innodb 引擎和 MyISAM 引擎默认的索引方法是 B-Tree。

索引方法分为 B-Tree 和 Hash,想要跟深入了解,可以查看 https://www.cnblogs.com/hanybblog/p/6485419.html

参考链接 https://www.cnblogs.com/brxHqs/p/9722113.html


Last updated: 2019-07-28

This blog is under a CC BY-NC-SA 4.0 International License
本文链接:http://mgzu.github.io/2019/07/28/Use-of-INDEX-under-MySQL/