目录
介绍
概念
- 索引(index):是帮助数据库高效获取数据的数据结构
优缺点
- 优点
- 提高数据的查询效率,降低数据库的IO成本
- 通过索引对数据进行排序,降低数排序的成本,降低CPU消耗
- 缺点
- 索引会占用内存空间
- 索引大大提高了查询效率,同时却也降低了insert、update、delete的效率
结构
- MySQL数据库支持的索引结构很多,如:Hash索引、B+Tree索引、Full-Text索引等。我们平常所说的索引,如果没有特别指明,都是默认B+Tree组织结构的索引
- B+Tree(多路平衡搜索树)
-
每一个节点可以存储多个key(有n个key,就有n个指针)
-
所有数据都储存在叶子节点,非叶子节点仅用于索引数据
-
叶子节点形成了一颗双向链表,便于数据的排序及区间范围的查询
- B+Tree(多路平衡搜索树)
语法
创建索引
-
create [unique] index 索引名 on 表名(字段名,.....);
-
on 之后指定创建索引的表与字段,加上unique表示创建唯一索引
-
具体实例代码如下
*sqlcreate index idx_emp_name on tb_emp (name);
查看索引
-
show index from 表名;
-
查看指定表的所有索引
-
具体实例代码如下
*sqlshow index from tb_emp;
删除索引
- drop index 索引名 on 表名
- 删除指定表的指定索引
- 具体实例代码如下
sql
drop index idx_emp_name on tb_emp;
注意事项
- 主键字段,在创建表时会自动创建主键索引(主键索引的性能最强)
- 属性添加唯一约束时,数据库也会对其添加唯一索引约束
- 在执行完上述索引创建语句后,执行展示索引语句的运行结果如下
- 在执行完上述索引创建语句后,执行展示索引语句的运行结果如下