为什么要使用索引:
-快速取数据;
-保证数据唯一性;
-实现表与表中的参照完整性;
-在使用order by、group by子句进行数据检索时,利用索引可以减少排序和分组的时间
索引的好处:
-快速取数据;
-保证数据唯一性;
-实现表与表中的参照完整性;
-在使用order by、group by子句进行数据检索时,利用索引可以减少排序和分组的时间
索引的分类
在一个表中,主键索引只能有一个,唯一索引可以有多个
1. 普通(单列)索引
-加速查询
2. 唯一索引
-加速查询,列值唯一,允许为空值。
-如果在 employee 表中职员的姓名 (ename) 上创建了唯一索引,则任何两个员工都不能同名
3. 主键索引
-是一种特殊的唯一索引,不允许有空值。唯一标识符,不能重复
4. 聚集索引
-表中行的物理顺序与键值的逻辑(索引)顺序相同
-一个表中只能包含一个聚集索引
5. 全文索引
-对文本的内容进行分词,进行搜索
-占用很大的物理存储空间,不推荐使用
基础语法 :
-- ==========索引的使用==============
/*
索引的使用
1、在创建表的时候,给字段增加索引
2、创建完毕后增加索引
*/
-- 显示索引的信息
show index from student;
-- 增加一个索引
alter table `student` add fulltext index `StudentName`(`StudentName`);
索引原则
-索引不是越多越好
-不要对进程变动数据加索引
-小数据量的表不需要加索引
-索引一般加在常用来查询的字段
索引的好处和不足,适合哪些字段建立字段,哪些不适合?
好处:
-加快数据检索速度
-唯一索引保证数据的唯一性
-加速表之间的连接
-减少分组、排序的时间
不足:
-索引需要占据物理存储空间
-当对表进行增删改操作时,索引需要维护,降低了维护效率
不适合:
1.在那种需求量很小的字段上使用,一年用两次的那种字段,浪费资源;
2.如果需求需要大量的全表查询,那么不适合建立索引
3.大量重复的值,如“性别”, 不适合建立索引
4.记录量不大的表中,不适合,建立索引占据内存,反而降低效率
适合:
1.经常需要被查询的字段,即在where、group by子句中出现的字段
2.存在依赖关系的子表和父表之间的联合查询,即主键或外键字段
3.需要设置为唯一完整性约束的字段,即主键的字段