mysql之索引基础知识与索引的创建

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(不包含重复数据)。

复合索引:一个索引中包含多个列 ,这多个列是一一对应的。

 

mysql之索引基础知识与索引的创建

上一篇:oracle报错解决


下一篇:sequelize 操作 mysql 基础