索引

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

索引是在存储引擎中实现的。mysql中索引的存储类型有两种,BTREEHASH

 

索引分类:

普通索引:允许插入重复值和空值。

唯一索引:索引列值唯一,允许有空值。组合索引,列值组合必须唯一。主键索引是一种特殊的唯一索引,不允许为空。

单列索引:一个索引只有一列,一张表可以有多个单列索引。

组合索引:多个字段组合的索引。

全文索引:FULLTEXT。支持全文查找,允许在这些列中插入重复值和空值。可在charvarchartext类型的列上创建。mysql中只支持MyISAM存储引擎支持全文索引。

空间索引:对空间数据类型的字段建立的索引。

索引的设计原则:

 

创建普通索引

 

 

Explain语句输出结果的各个行解释如下:

 

创建唯一索引:

 

创建单列索引:

单列索引是数据表中的某一个字段上创建的一个索引,一个表中可以创建多个单列索引。

 

创建组合索引:

 

创建全文索引:

 

创建空间索引:

空间索引必须建在MyISAM类型的表中创建,并且空间类型的字段上必须为非空。

 

删除索引:

alter table table_name drop index index_name

drop index index_name on table_name

数据库三范式:

第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。

第二范式(2NF):首先是 1NF,另外包含两部分内容,一是表必须有主键;二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。

 第三范式(3NF):首先是 2NF,另外非主键列必须直接依赖于主键,不能存在传递依赖。

原文地址:https://www.cnblogs.com/heqiyoujing/p/9583009.html