首页 数据库

mysql索引类型

发布于: 2020-06-03

1 普通索引

最基本的缩影,他没有任何限制,只是用于加速查询

1
2
3
4
5
create table table_1_1(name varchar(32),INDEX index_table_1_1_name(name));


create table table_1_2 (name varchar(32));
create INDEX index_table_1_2_name ON table_1_2(name);

2唯一索引

索引列的值必须是唯一的,但是允许为空值,如果组合索引,则列支的组合必须是唯一的

1
2
3
4
5
create table table_2_1(name varchar(32),UNIQUE index_unique_table_2_1_name(name));


create table table_2_2 (name varchar(32));
create unique index index_unique_table_2_2_name ON table_2_2(name);

3.主键索引

是一种特殊的唯一索引,一个表只能有一个主键,不允许为空,一般在建表的时候就需要同时创建主键索引

1
create table table_3_1 (id int(11) not null auto_increment,name varchar(32),PRIMARY KEY(id));

4组合索引

多个字段上创建索引,只有在查询条件中使用创建索引的第一个字段,索引才会被使用,使用组合索引遵循最左前缀集合

1
2
3
4
5
6
create table table_4_1(id int(11),name varchar(32),index index_id_name(id,name) );



create table table_4_2 (id int(11),name varchar(32));
create index index_id_name on table_4_2(id,name);

5 全文索引

主要是查找文本中的关键字,目前只支持char、varchar、text列可以创建索引

1
2
3
4
5
create table article_1 (content text null , fulltext(content));


create table article_2 (content text null);
create fulltext index index_artice_content on article_2(content);