1. 什么是索引
给出索引的官方介绍: 索引 (Index) 是帮助 MySQL 高效获取数据的数据结构. MySQL 索引主要有两种结构: B+Tree 索引和 Hash 索引. 我们平常所说的索引, 如果没有特别指明, 一般都是指 B 树结构 组织的索引(B+Tree 索引).
索引相当于一本字典的目录, 通过目录快速的找到需要找的词. 提高查找的速度. 因此在 MySQL 建立索引, 是非常有必要的事情, MySQL 中的索引可以大大增强查询的速度.
如果将 MySQL 中索引查询的速度比做兔子的速度, 那么没有索引的 MySQL 查询就是乌龟的速度.
2. 索引的作用
提高查询速度.
3. 索引的优点
1, 索引能够提高数据检索的效率, 降低数据库的 IO 成本.
2, 在使用分组和排序子句进行数据检索时, 大大减小查询时间.
3, 通过创建唯一性索引, 可以保证数据库表中每一行数据的唯一性.
4, 加速两个表之间的连接, 一般是在外键上创建索引.
4. 索引的缺点
1, 降低了更新表的速度, 如对表进行 INSERT,UPDATE 和 DELETE. 因为更新表时, MySQL 不仅要保存数据, 还要保存一下索引文件.
2, 需要占用磁盘空间, 建立的索引越多需要的空间越大.
3, 维护成本高, 创建索引和维护索引要耗费时间, 而这个时间随着数据量的增加而增加.
5. 创建索引
在穿件索引的时候, 不要随便创建. 首先需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件).
一般需要建立索引的字段
1, 经常用在 where 语句之后的字段.
2, 主键或者外键.
3, 字段具有唯一性的时候建立唯一性索引.
4, 在经常需要根据范围进行搜索的列上创建索引, 因为索引已经排序, 其指定的范围是连续的.
6. 索引分类
索引分四类: 普通索引, 主键索引, 唯一索引, 复合索引.
普通索引: index 一般用于查询条件后的字段(包含重复值).
主键索引: primary key 索引值是唯一值, 切不能为 null.
唯一索引: unique 索引值是唯一值, 但是可以出现多次 null, 可以为 null(不包含重复数据).
复合索引: 一个索引中包含多个列 , 这多个列是一一对应的.
来源: http://www.bubuko.com/infodetail-3527253.html