探索数据库之索引

为什么要使用索引:

  -快速取数据;

  -保证数据唯一性;

  -实现表与表中的参照完整性;

  -在使用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.需要设置为唯一完整性约束的字段,即主键的字段

 

 

原文地址:https://www.cnblogs.com/joey-413/p/13374409.html