索引
索引的创建和维护会耗费大量的时间和磁盘空间,但是可以极大的提升用户查询的速度
创建表时添加索引
CREATE TABLE 表名(
字段1 数据类型 [完整性约束],
字段2 数据类型 [完整性约束],
[UNIQUE | FULLTEXT | SPATIAL] INDEX | KEY
[索引名] (字段名[(长度)]) [ASC | DESC])
);
创建多列索引
create table multIndex( id int, name varchar(20), age int, index mult_index_name_age (name,age) );
创建全文索引
create table fullindex( id int primary key auto_increment, name varchar(20), age int, index full_index_name (name) );
创建普通索引
create table commonindex( id int primary key auto_increment, name varchar(20), age int, index common_name (name) );
创建唯一索引
create table uniqueindex( id int primary key auto_increment, name varchar(20), age int, unique index unique_name (name) );
添加索引
在已存在的表上创建索引
CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX 索引名 on 表名 (字段名[(长度)] [ASC | DESC]);
删除索引
DROP INDEX 索引名 on 表名;
实际应用
创建一条包含50000条记录的表
- 添加索引前:用时0.02 sec
mysql> select * from tem where id=29878;
+-------+--------+
| id | name |
+-------+--------+
| 29878 | wohaaa |
+-------+--------+
1 row in set (0.02 sec)
- 添加索引后: 用时0.00 sec
mysql> select * from tem where id=47867;
+-------+--------+
| id | name |
+-------+--------+
| 47867 | wohaaa |
+-------+--------+
1 row in set (0.00 sec)