MySQL--索引
索引概述
索引是帮助MySQL高效获取数据的数据结构(有序)
演示
使用全表扫描性能极低
使用二叉搜索树更高效
优缺点
索引结构
- B+Tree索引
- Hash索引
- R-Tree(空间索引)
- Full-text(全文索引)
存储引擎支持情况
平常所说的索引都是指的B+树索引
二叉树
B-Tree(多路平衡查找树)
n个key就有n+1个指针
演示过程
B+树
所有元素都会出现在叶子结点
所有叶子结点通过单向链表相连
演示过程
Mysql当中的B+树
Hash索引
Hash索引特点
思考题
为什么InnoDB存储引擎选择使用B+tree索引结构?
-
相对于二叉树,层级更少,搜索效率高.
-
对于B-tree,无论是叶子节点还是非叶子节点都会保存数据,这样导致一页中存储的键值减少,指针跟着减少,要同样保存大量数据,只能增加树的高度,导致性能降低.
-
相对Hash索引,B+Tree支持范围匹配及排序操作.