索引认知
- 索引可以加快数据库的检索速度
- 索引会降低增删改等操作的速度
- 索引需要占用物理和数据空间
- MySQL支持Hash索引和B+树索引
那么为什么呢?
- 使用索引为什么可以加快数据库的检索速度啊?
- 为什么索引会降低增删改等操作的速度
- Hash索引和B+树索引有什么区别?主流的使用哪一个比较多?InnoDB存储都支持吗?
索引做了什么可以提高检索速度?
- 其实就是将无序的数据变得相对有序,通过’目录’快速定位,底层结构就是B+树
- B+树是平衡树的一种,检索的时间复杂度为O(logn)
- B+树是一个平衡树,如果我们对这个树进行增删改的话就会破坏他的原有结构,而要维持平衡树,就必须做额外的工作,从而导致增删改的速度降低
哈希索引
哈希索引就是采用一定的哈希算法,把键值换算成新的哈希值,检索时不需要类似B+树那样从根节点到叶子节点逐级查找,只需一次哈希算法即可立刻定位到相应的位置,速度非常快。
- 本质上就是把键值换算成新的哈希值,根据这个哈希值来定位