Mysql数据库-索引
索引是加快查询速度的有效手段。创建索引需要占用一定的存储空间,此外,更新表时,也需要对与该表相关的索引进行维护。
1. Mysql中的索引类型
- 主键索引:创建表时,关键词
primary key
即表示修饰的字段为主键,同时也是索引。 - 唯一索引(unique):创建索引时,使用
unique
关键字修饰,表示此索引的每一个索引值只对应唯一的数据记录。 - 普通索引(index)
- 全文索引(fulltext)
注:unique索引的查询速度要优于普通索引,如果某字段的值不会重复,则优先考虑使用unique索引,否则使用普通索引。
2. 索引相关sql语句
1 创建索引
① 创建普通索引
create index 索引名 on 表名 (字段名); # 方法1
alter table 表名 add index 索引名 on (字段名); # 方法2
② 创建唯一索引
create unique index 索引名 on 表名 (字段名);
③ 创建主键索引
alter table 表名 add primary key (字段名); # 对未指定主键的表添加主键索引
2 修改索引
alter index 旧索引名 rename to 新索引名 on 表名;
3 查询索引
show index from 表名;
3 删除索引
① 删除普通索引
drop index 索引名 on 表名;
② 删除主键索引
alter table 表名 primary key;
3. 索引的适用范围
在哪些列上适合使用索引:
- 较频繁的作为查询条件的字段应该创建索引。
- 唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件。如
select * from emp where sex='男'
。 - 更新频繁的字段不适合创建索引
- 不会出现在查询子句中(where)的字段不适合创建索引。
4. 索引的原理
待完成