二、索引综述

一、综述

1.1是什么?

索引是一种结构,索引是对数据库表里面一列或者多列进行排序的一种结构,使用索引可以提高数据库里面特定数据的查询速度。

1.2作用:

  • 提高查询速度
  • 确保数据的唯一性
  • 可以加速表与表之间的连接,实现表与表之间的参照完整性
  • 使用分组和排序子句进行数据检索时,可以显著减少分组和排序的时间
  • 全文检索字段进行搜索优化

1.3分类

  • 主键索引(PRIMARY KEY)
  • 唯一索引(UNIQUE)
  • 常规索引(INDEX)
  • 全文索引(FULLTEXT)

举例:
select * from table1 where id=50000
如果在执行这一条SQL语句,在没有索引的时候,它会遍历数据库表里面的所有记录,直到找到id是50000的记录为止。如果id是自增的,那他就会一直遍历这个表,直到50000。它会整个表地遍历一遍。但是一旦有了索引,就能直接去找到50000这一行。
MySQL里面存储数据是一行一行的,但是查询数据却是一列一列的。所以可以给列加索引,到时候直接去定位到相应的位置,这样就提高了效率。

可以直接理解为加了索引之后就给查询设计了一定的算法,能提高效率。

这个地方就记住一句话就行了:加了索引之后,就能使得查询的速率提高。

二、主键索引

2.1主键

某一个属性组能唯一标识一条记录。
如学生表(学号、姓名、班级、性别等),学号就是唯一标识的,可作为主键。
因为在实际情况中根据主键查询很常用,所以有了主键索引这个东西,数据库会自动的给你添加了主键的那个字段添加了一个索引。

2.2特点

  • 最常见的索引类型
  • 确保数据记录的唯一性
  • 确定特定数据记录在数据库中的位置

2.3原理

数据库把索引单独存起来了,比如说你设置了主键索引,它会把主键索引单独存在一个文件里面。查某个值的时候会先去查对应的索引,根据索引查找对应的数据。
比如小学的新华字典,根据偏旁部首去查字。

三、唯一索引(UNIQUE)

3.1作用

避免同一个表中某数据列中的值重复。一般使用唯一索引的目的是为了确保一个列里面的数据不重复,而不是为了提高查询速度。

3.2与主键索引的区别

  • 主键索引只能有一个
  • 唯一索引可以有多个
  • 主键非空唯一,唯一索引允许有空值

四、常规索引

4.1作用

快速定位数据。

42.注意事项

1、index和key关键字都可设置常规索引
2、 应加在查找条件的字段(也就是说这一个字段经常出现在where的后面)
3、不宜添加太多常规索引,影响数据的插入、删除和修改操作

五、全文索引

5.1作用

快速定位特定数据

5.2注意

  • 只能用于MyISAM类型的数据表
  • 只能用于CHAR、VARCHAR、TEXT数据列类型
  • 适合大型数据集(比如这一列中存储的是合同的内容)

你可能感兴趣的:(二、索引综述)