索引(index):是帮助数据库高效获取数据的数据结构 。
-
简单来讲,就是使用索引可以提高查询的效率。
优点:
-
提高数据查询的效率,降低数据库的IO成本。
-
通过索引列对数据进行排序,降低数据排序的成本,降低CPU消耗。
缺点:
-
索引会占用存储空间。
-
索引大大提高了查询效率,同时却也降低了insert、update、delete的效率。
B+树
-
每一个节点,可以存储多个key(有n个key,就有n个指针)
-
节点分为:叶子节点、非叶子节点
-
叶子节点,就是最后一层子节点,所有的数据都存储在叶子节点上
-
非叶子节点,不是树结构最下面的节点,用于索引数据,存储的的是:key+指针
-
-
为了提高范围查询效率,叶子节点形成了一个双向链表,便于数据的排序及区间范围查询
-
千万条数据,B+Tree可以控制在小于等于3的高度
-
所有的数据都存储在叶子节点上,并且底层已经实现了按照索引进行排序,还可以支持范围查询,叶子节点是一个双向链表,支持从小到大或者从大到小查找
-- 索引
-- 为了高效获取数据的一种数据结构,大大提高了查询的速度,但会影响插入更新等操作(空间换时间
-- 采用B+树的结构,改善了二叉树对于数据量很大时层数很大的问题:B+树一个节点可以有很多个的key,key只是索引,所有的数据是存在叶子节点上的
-- 索引的使用
-- 创建索引
create index idx_emp_name on tb_emp(name);
-- 查询
show index from tb_emp;
-- 指定主键,会默认创建主键索引
-- 指定唯一约束,会默认创建一个唯一索引
-- 删除
drop index idx_emp_name on tb_emp;