创建索引的基本语法格式是:
create table 表名(属性名 数据类型 [完整性约束]
……
[unique | fulltext | spatial] index | key [别名] (属性名1[(长度)] [asc | desc])
);
格式里面中括号以内的代表可选参数(就是说可以不写),竖线分割开可以写的参数类型。长度是指索引长度,只有字符串类型的可以用,asc是说参数表示升序排列,desc表示降序排列。添加全文索引
create table index3(id int,
info varchar(20),
fulltext index index3_info(info)
)engine=myisam;
因为只有myisam存储引擎支持全文索引,而mysql默认设置里面默认存储引擎是innodb,必须声明一下引擎否则建表不成功。并且全文索引只支持char varchar text这些字符串类型。
全文索引搜索时间会因为索引长度加长而增多,所以可以只用前缀作为索引。比如:
create table index4(id int,
subject varchar(30),
index index4_st(subject(10))
);
subject的索引长度比实际subject短这样就可以加快搜索速度了。对多字段创立索引:
create table index5(id int,
name varchar(22),
sex char(8),
index index5_ns(name,sex)
);
在已经存在的表上创建索引:
create unique index Ind on index5 (name(10) ase);
语法就是在表定义索引基础上在索引名后面加了个 on+表名。
也可以用alter来添加:
alter table index5 add unique index Ind (name(10) ase);
跟上面语句是等价的。
删除索引也有两种:
drop index Ind on index5;
alter table list drop index Ind;