索引
简介
索引的价值,在于提高海量表的查询速度。
索引的算法有btree(二叉树算法) 、hash算法。
分类
主键索引(primary key)
唯一索引(unique)
普通索引(index)
全文索引(fulltext)
索引的代价
- 占用磁盘空间;
- 当我们进行读写操作,速度有一定的影响,但不大;
- 添加一个索引后,并不能解决所有的查询问题,需要分别给检索字段创建索引;
- 使用索引,是用空间换时间。
创建索引
主键索引
基本语法
三种形式:
特点
- 一个表最多一个主键索引,可以是复合主键;
- 主键索引效率高;
唯一索引
基本语法
在创建表的时候,直接指定唯一索引
创建表后,再指定唯一索引
特点
- 一个表,可以有多个唯一索引;
- 查询的效率高;
- 唯一索引的值,是不能重复,
如果唯一索引字段规定了 not null , 则唯一索引的值还不能null
普通索引
基本语法
在创建表的时候,直接指定普通索引
在创建表后,再指定
特点
- 一个表,可以有多个普通索引;
- 当我们字段有重复的数据时,我们就应该使用普通索引;
- 在实际的开发中,普通索引使用的最多
创建索引的规则
符合以下规则的字段,才适合创建索引。
1)较频繁的查询条件的字段;
2)唯一性好的字段;
3)更新不频繁的字段;
4)会出现在WHERE子句中的字段