索引的分类
- 按功能逻辑上说,索引有四种:普通索引,唯一索引,主键索引,全文索引
- 按物理实现方式说:索引分为聚簇索引和非聚簇索引(二级索引)
- 按字段个数说:索引分单列索引和联合索引
普通索引
在创建普通索引时,不添加任何限制条件,只是用于提高查询效率,可以添加到任何类型的字段上。
唯一索引
创建索引时,用UNIQUE
参数限制,限制该字段值是唯一的,但是允许有NULL值,一张数据表中可以有多个唯一索引列。
主键索引
主键索引是一种特殊的唯一索引
,在唯一索引的基础上加上了非空的约束。就是UNIQUE + NOT NULL
,一张表里只能有一个
主键索引。
全文索引
使用 FULLTEXT
可以设置全文检索,全文索引列中可以有重复值和空值,全文索引只能建在CHAR,VARCHAR,TEXT
类型及系列类型字段上,查询数据量较大的字符串类型的字段时,使用全文索引可以提高查询速度。
索引的创建
方式一:创建表时创建索引
1.隐式的方式创建,在声明有主键约束,唯一约束,外键约束的字段上,会自动添加相关的索引
CREATE TABLE employee(
e_id INT PRIMARY KEY AUTO_INCREMENT,
e_email VARCHAR(50) UNIQUE,
e_name VARCHAR(20)
);
2.显示的方式创建
基本语法格式如下
CRATE TABLE table_name [col_name data_type]
[UNIQUE | FULLTEXT | SPATIAL] [INDEX | KEY ] [index_name] (col_name [length]