概念:索引是帮助数据库高效获取数据的数据结构。
无索引时进行全表扫描;有索引时高效。
介绍:
①优点:
提高数据查询的效率,降低数据库的IO成本。
通过索引对数据进行排序,降低数据排序的成本,降低CPU消耗。
②缺点:
索引会占用存储空间。
索引大大提高了查询效率,同时也降低了insert、update、delete的效率。
结构:
MYSQL数据库支持的索引结构有很多,如Hash索引、B+Tree索引、Full-Text索引等,无特别指明,都是默认的B+Tree结构组织的索引。
(二叉搜索树和红黑树在大数据情况下,存在层级深,检索速度慢的问题)
B+Tree(多路平衡搜索树)
特点:
①每一个节点,可以存储多个key(有n个key,就有n个指针)
②所有的数据都存储在叶子节点,非叶子节点仅用于索引数据。
③叶子节点形成了一颗双向链表,便于数据的排序及区间范围查询。
语法
创建索引:create [unique] index 索引名 on 表名 [字段名....];
查看索引:show index from 表名;
删除索引:drop index 索引名 on 表名;
注意事项:
主键字段,在建表时,会自动创建主键索引。
添加唯一约束时,数据库实际上会添加唯一索引。