zoukankan      html  css  js  c++  java
  • 索引能提高检索速度,降低维护速度

    索引为什么能提高检索速度?

    索引将无序的数据变成有序(相对),如果没用索引我们需要遍历双向链表来定位对应的页。有了索引就通过“目录”很快能定位到对应的页上。底层结构是B+树,B+树作为树的一种实现,能够让我们很快地查找出对应的记录。

    为什么索引会降低插入、删除、修改等维护任务的速度?

    1、B+树是平衡树的一种,是不会退化成链表的,树的高度都是相对比较低的,基本符合矮胖均匀结构,时间复杂度是O(logn)(平衡树是一棵空树或者它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树)

    2、如果一棵普通的树在极端的情况下是能退化成链表的(树的优点就不存在了)

    3、建索引就是建一棵B+树,因为B+树是一棵平衡树,如果我们对这棵树进行增删改的话是会破坏它的原有结构。所以要维持平衡树,就必须做额外的工作。正是因为这些额外的开销,导致索引会降低增删改的速度。

    欢迎批评指正,提出问题,谢谢!
  • 相关阅读:
    MySQL系列(二)
    MySQL系列(一)
    RabbitMQ的安装部署
    RabbitMQ原理介绍
    消息中间件metaq
    消息中间件之zookper安装部署
    ZooKeeper基本原理
    消息中间件剖析
    了解Node.js
    windows下使用Git
  • 原文地址:https://www.cnblogs.com/xxeleanor/p/14360594.html
Copyright © 2011-2022 走看看