今天在mysql上建立聚簇索引,发现使用了create cluster index 会报语法错误。于是到网上查阅资料找到了原因:因为我的mysql引擎是innodb,二在innodb里的聚簇索引不能单独建立聚簇索引,一般默认已主键为聚簇索引
innodb索引分类:聚簇索引(clustered index)1) 有主键时,根据主键创建聚簇索引2) 没有主键时,会用一个唯一且不为空的索引列做为主键,成为此表的聚簇索引3) 如果以上两个都不满足那innodb自己创建一个虚拟的聚集索引
索引相关常用命令:1) 创建主键 CREATE TABLE `pk_tab2` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`a1` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2) 创建唯一索引create unique index indexname on tablename(columnname);
alter table tablename add unique index indexname(columnname);
3) 创建单列一般索引create index indexname on tablename(columnname);
alter table tablename add index indexname(columnname);
4) 创建单列前缀索引create index indexname on tablename(columnname(10)); //单列的前10个字符创建前缀索引
alter table tablename add index indexname(columnname(10)); //单列的前10个字符创建前缀索引
5) 创建复合索引create index indexname on tablename(columnname1,columnname2); //多列的复合索引
create index indexname on tablename(columnname1,columnname2(10)); //多列的包含前缀的复合索引
alter table tablename add index indexname(columnname1,columnname2); //多列的复合索引
alter table tablename add index indexname(columnname1,columnname(10)); //多列的包含前缀的复合索引
6) 删除索引drop index indexname on tablename;;
alter table tablename drop index indexname;
7) 查看索引show index from tablename;
show create table pk_tab2;