索引(index)是帮助数据库高效获取数据的数据结果。
优点:
- 提高数据查询的效率,降低数据库的IO成本
- 通过索引列对数据进行排序,降低数据排序的成本,降低CPU消耗
缺点:
- 索引会占用存储空间
- 索引大大提高了查询效率,但同时也降低了
insert
,update
,delete
的效率
MySQL数据库支持的索引结构有很多,如:Hash索引、B+Tree索引、Full-Text索引等。平常所说的索引默认是B+Tree结构组织的索引。
语法
-
创建索引
sqlcreate [unique] index 索引名 on 表名(字段名...);
-
查看索引
sqlshow index from 表名;
-
删除索引
sqldrop index 索引名 on 表名;
sql
-- 创建:为tb_emp表的name字段建立一个索引
create index idx_emp_name on tb_emp(name);
-- 查询:查询 tb_emp 表的索引信息
show index from tb_emp;
-- 删除:删除 tb_emp 表中name字段的索引
drop index idx_emp_name on tb_emp;
show index from tb_emp;
- 主键字段在建表时会自动创建主键索引
- 添加唯一约束时,数据库实际上会添加唯一索引