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

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

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

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

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

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

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

    欢迎批评指正,提出问题,谢谢!
  • 相关阅读:
    GNU GPL介绍
    《Getting Started with WebRTC》第一章 WebRTC介绍
    进一步解 apt-get 的几个命令
    状态模式----C++实现
    boost库asio详解1——strand与io_service区别
    Timer.5
    Timer.4
    Timer.3
    MFC定时器
    boost.asio系列——Timer
  • 原文地址:https://www.cnblogs.com/xxeleanor/p/14360594.html
Copyright © 2011-2022 走看看