索引
索引在mysql 中也叫 '键',是存储引擎用来快速找到记录的一种数据结构.索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要.
索引优化应该是对查询性能优化最有效的手段了.索引能够轻易将查询性能提高好几个数量级.索引相当于字段的音序表,如果要查某个字,如果不使用音序表,则需要从几百页中逐页查询
索引的特点:
创建与维护索引会消耗和很多时间与磁盘空间,但查询速度大大提高.
索引操作 - 建表创建索引
创建表时
语法:
create table 表名(
字段名1 数据类型 [完整性约束条件....],
字段名2 数据类型 [完整性约束条件....],
[ UNIQUE | FULLTEXT | SPATLAL ] index | key
[索引名] (字段名[(长度)] [ASC | DESC])
);
普通创建索引示例:
CREATE TABLE table1(
id int,
name varchar(20),
index index_name (name)
);
唯一索引示例:
CREATE TABLE table1(
id int,
name varchar(20) unique,
unique index index_name (name)
);
全文索引示例:
CREATE TABLE table1(
id int,
name varchar(20) unique,
fulltext index index_name (name)
);
多列索引示例:
CREATE TABLE table1(
id int,
name varchar(20) unique,
index index_name (id,name)
);
索引操作 - 添加索引
语法:(CREATE 方式)
CREATE [UNIQUE | FULLTEXT | SPATAL ] INDEX 索引名 ON 表名 (字段名[(长度)] [ ASC | DESC ]) ;
语法:(LATER TABLE 方式)
ALTER TABLE 表名 ADD [UNIQUE | FULLTEXT | SPATAL ] INDEX 索引名(字段名[(长度)] [ ASC | DESC ]) ;
方式1
CREATE INDEX index_name on test1(name); 方式2
ALTER TABLE test1 ADD UNIQUE INDEX index_name(name);
索引操作 - 删除索引
语法:DROP INDEX 索引名 on 表名
DROP INDEX index_name on test1;
DROP INDEX 2 on test2; //test2 表中的第2个字段