目录
索引
优缺点
结构
语法
创建索引
查看索引
删除索引
索引
索引是帮助数据库高效获取数据的数据结构。如果没有设置索引会进行全表扫描,性能较低。
优缺点
优点 | 缺点 |
提高数据检索的效率,降低数据的IO成本 | 索引列也是要占用空间的 |
通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗 | 索引大大提高了查询效率,同时也降低了更新表的速度,如进行INSERT,UPDATE,DELETE时效率降低 |
结构
MySQL数据库支持的索引结构有很多,如:Hash索引,B+Tree索引,Full-Text索引等。我们平时说的索引默认为B+树(多路平衡搜索树)组织结构的索引。
B+树特点
- 每一个节点可以存储多个key,有n个key就有n个指针
- 所有的数据都存储在叶子节点中,非叶子节点仅用来检索数据
- 叶子节点之间形成了双向链表,便于数据的排序以及区间范围查询
不采用二叉搜索树,二叉平衡树,红黑树等的原因
在大数据量的情况下,层级较深,检索速度慢
语法
创建索引
create [unique] index 索引名 on 表名(字段名...);
查看索引
show index from 表名;
删除索引
drop index 索引名 on 表名;
在添加唯一约束时,数据库实际上会添加唯一索引。
添加主键字段,数据库会自动创建主键索引。