索引
Posted 且听风吟-wuchao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了索引相关的知识,希望对你有一定的参考价值。
简介
索引存储类型:B型树索引、哈希索引
索引分类:普通索引、唯一性索引、全文索引、单列索引、多列所以、空间索引
创建索引
create table 表名 (属性名 数据类型 [约束条件],
属性名 数据类型 [约束条件],
……
[unique|fulltext|spatial] index | key [别名] (属性名1 [(长度)] [asc|desc])
);
1.unique是可选参数,表示唯一性索引
2.fulltext是可选参数,表示全文索引
3.spatial是可选参数,表示空间索引
4.index和key用来指定字段为索引,二者功能相同,二选一即可
5.别名为可选参数
6.属性1指定索引对应的字段名称,该字段必须是已定义的
7.长度是可选参数,指定索引长度,字段是字符串时才可以使用
8.asc和desc是可选参数,前者表示升序,后者表示降序
创建普通索引
普通索引可以创建在任何数据类型上
mysql> create table index1(id int,name varchar(20),sex boolean,index index_id (id));
查看结果:
mysql> create table index1(id int,name varchar(20),sex boolean,index index_id (id));
使用explain语句查看索引是否被使用:
创建唯一性索引
mysql> create table index2(id int unique,name varchar(20),unique index index2_id (id asc));
mysql> show create table index2;
创建全文索引
mysql> create table index3(id int,info varchar(20),fulltext index index3_id (info))engine=MyISAM;
mysql> show create table index3;
注:InnoDB不支持全文索引
创建单列索引
单列索引是在表中的单个字段创建索引
mysql> create table index4(id int,subject varchar(30),index index4_st(subject(10)));
mysql> show create table index4;
创建多列索引
mysql> create table index5(id int,name varchar(20),sex char(4),index index5_ns(name,sex));
创建空间索引
此时存储引擎必须是MyISAM,索引字段必须非空约束
mysql> create table index6(id int,space geometry not null,spatial index index6_sp(space))engine=MyISAM;
在已有的表上创建索引
形式1:
create [unique|fulltext|spatial] index 索引名on 表名 (属性名 [(长度)] [asc|desc]);
形式2:
alter table 表名 add index 索引名 (属性名 [(长度)] [asc|desc]);
删除索引
drop index 索引名 on 表名;
以上是关于索引的主要内容,如果未能解决你的问题,请参考以下文章