目录
1.索引的概念
2.索引的作用
索引的副作用
3.创建索引的原则依据
4.索引的分类和创建
普通索引
直接创建索引
修改表方式创建
创建表的时候指定
唯一索引
直接创建唯一索引
修改表方式创建
创建表的时候指定
主键索引
创建表的时候指定
修改表方式创建
组合索引
直接创建
编辑编辑修改表结构创建
全文索引
直接创建索引
修改表方式创建
创建表的时候指定索引
使用全文索引查询
查看索引
各字段的含义
删除索引
直接删除索引
编辑修改表方式删除索引
删除主键索引
遇到select语句查询慢解决方法
索引虽可以提升数据库查询的速度,但并不是任何情况下都适合创建索引。因为索引本身会消耗系统资源,在有索引的情况下,数据库会先进行索引查询,然后定位到具体的数据行,如果索引使用不当,反而会增加数据库的负担。
CREATE INDEX 索引名 ON 表名 (列名[(length)]);
(列名(length)):length是可选项,下同。如果忽略 length 的值,则使用整个列的值作为索引。如果指定,使用列的前 length 个字符来创建索引,这样有利于减小索引文件的大小。在不损失精确性的情况下,长度越短越好。
索引名建议以“_index”结尾。
#例
create index name_index on yy (name);
ALTER TABLE 表名 ADD INDEX 索引名 (列名);
create table 表名(字段1 数据类型, 字段2 数据类型, .... , INDEX 索引名(列名));
CREATE UNIQUE INDEX 索引名 ON 表名(列名);
#例
create unique index cardid_index on yy(cardid);
ALTER TABLE 表名 ADD UNIQUE 索引名 (列名);
CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...],UNIQUE 索引名 (列名));
CREATE TABLE 表名 ([...],PRIMARY KEY (列名));
ALTER TABLE 表名 ADD PRIMARY KEY (列名);
#例
alter table yy add primary key (id);
CREATE TABLE 表名 (列名1 数据类型,列名2 数据类型,列名3 数据类型,INDEX 索引名 (列名1,列名2,列名3));
select * from 表名 where 列名1='...' AND 列名2='...' AND 列名3='...';
create index 索引名 on 表名(字段1, 字段2, ....);
create unique index 索引名 on 表名(字段1, 字段2, ....);
##查询
select ... from 表名 where 字段1=XX and 字段2=XX;
alter table 表名 add index 索引名(字段1, 字段2, ....);
alter table 表名 add unique 索引名(字段1, 字段2, ....);
CREATE FULLTEXT INDEX 索引名 ON 表名 (列名);
ALTER TABLE 表名 ADD FULLTEXT 索引名 (列名);
#例
alter table yy add fulltext remark_index (remark);
CREATE TABLE 表名 (字段1 数据类型[,...],FULLTEXT 索引名 (列名));
数据类型可以为 CHAR、VARCHAR 或者 TEXT
SELECT * FROM 表名 WHERE MATCH(列名) AGAINST('查询内容');
#例 随便写入一些数据进入表
insert into yy values(1,'cxk',123123,123123,'nanjing','this is member!');
insert into yy values(2,'ybc',456456,456456,'beijing','this is vip!');
insert into yy values(3,'wwy',789789,78979,'shanghai','this is vip member!');
select * from member where match(remark) against('vip');
查询
show index from 表名 [\G(纵向查看)];
show keys from 表名 [\G(纵向查看)];
show create from 表名;
DROP INDEX 索引名 ON 表名;
ALTER TABLE 表名 DROP INDEX 索引名;
ALTER TABLE 表名 DROP PRIMARY KEY;