索引(下)

1. 索引分类

1) 单值索引:一个索引只包含单个列,一个表可以有多个单列索引

2) 唯一索引:索引列的值必须是唯一,但允许有空值

3) 复合索引:即一个索引包含多个列

2. 索引语法

1. 创建索引

 默认是BTREE 类型

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
    [USING index_type] ON tbl_name(index_col_name, ...)

2. 查看索引

show index from table_name;

3. 删除索引

DROP INDEX index_name ON tal_name;

4. ALTER 命令与索引

--1. 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL
alter table tb_name add primary key(column_list);
--2. 创建唯一索引
alter table tb_name add unique index_name(column_list);
--3. 添加普通索引
alter table tb_name add index index_name(column_list);
--4. 创建全文索引
alter table tb_name add fulltext index_name(column_list);

3. 索引设计原则

  • 对查询频次高较高,且数据量大的表建立索引

  • 索引字段最佳候选列应从where子句的条件中提取。如果where子句中的组合比较多,那么应当挑选最常用、过滤效果最好的列的组合。

  • 使用唯一索引,区分度越高,使用索引的效率越高

  • 应该控制索引的数量,不宜过多导致维护损耗变大

  • 使用短索引,索引创建之后也是使用硬盘来存储的,因此提升索引访问的I/O效率,也可以提升总体的访问效率。

  • 利用最左前缀,N个列组合而成的组合索引,那么相当于创建了N个索引,如果查询时where子句中使用了组成该索引的前几个字段,那么这条查询SQL可以利用组合索引来提升查询效率。

你可能感兴趣的:(MySQL高级—黑马视频笔记,mysql,数据库,索引)