zoukankan      html  css  js  c++  java
  • 论 数据库 B Tree 索引 在 固态硬盘 上 的 离散存储

    传统的做法 , 数据库 的 B Tree 索引 在 磁盘上是 顺序存储 的 , 这是考虑到 磁盘 机械读写 的 特性 。 

    实际上 , B Tree 是一个 树形结构 , 可以采用 链式 存储 , 就是像 链表 那样 。 而 链式存储 就是 离散存储 。

    固态硬盘 是 电子读写 , 所以 随机读写 和 顺序读写 的效率是一样的 。

    所以 , 在 固态硬盘 上 , B Tree 索引 可以 采用 链式存储(离散存储) 的 方式 。

    我之前说 数据库的瓶颈在于 大数据量频繁 Insert 索引排序 , 实际上 不是 排序 , 而是在索引中 插入一个新项 时 , 新项 之后 的 原有的 索引项 全部要 向后 移动 。

    就相当于是 线性表 插入元素 。 表的数据量大时 , 这个花费时间很大 。

    如果 采用 链式存储 , 那么在 索引 里 插入一项 相当于 链表 插入一个 节点 , 时间复杂度 为 1 。  

    这样就 大大提高了效率 。 可以大大的提高 大并发 大数据量 Insert update delete 的 处理速度 。

    我们可以参考这篇文章  “内存是硬盘 , 硬盘是磁带”      https://blog.csdn.net/u013613428/article/details/55259924

  • 相关阅读:
    cstc2018 混合果汁
    CF1086E Beautiful Matrix
    AT2000 Leftmost Ball
    CF1208E Let Them Slide
    CF1208D Restore Permutation
    【置顶】博客公告
    [NOI2015]软件包管理器
    【noip2018】积木大赛
    几天连测总结
    【ZJOI2007】棋盘制作
  • 原文地址:https://www.cnblogs.com/KSongKing/p/9501686.html
Copyright © 2011-2022 走看看