傳統的作法 , 數據庫 的 B Tree 索引 在 磁盤上是 順序存儲 的 , 這是考慮到 磁盤 機械讀寫 的 特性 。 數據庫
實際上 , B Tree 是一個 樹形結構 , 能夠採用 鏈式 存儲 , 就是像 鏈表 那樣 。 而 鏈式存儲 就是 離散存儲 。併發
固態硬盤 是 電子讀寫 , 因此 隨機讀寫 和 順序讀寫 的效率是同樣的 。大數據
因此 , 在 固態硬盤 上 , B Tree 索引 能夠 採用 鏈式存儲(離散存儲) 的 方式 。.net
我以前說 數據庫的瓶頸在於 大數據量頻繁 Insert 索引排序 , 實際上 不是 排序 , 而是在索引中 插入一個新項 時 , 新項 以後 的 原有的 索引項 所有要 向後 移動 。blog
就至關因而 線性表 插入元素 。 表的數據量大時 , 這個花費時間很大 。排序
若是 採用 鏈式存儲 , 那麼在 索引 裏 插入一項 至關於 鏈表 插入一個 節點 , 時間複雜度 爲 1 。 索引
這樣就 大大提升了效率 。 能夠大大的提升 大併發 大數據量 Insert update delete 的 處理速度 。內存
咱們能夠參考這篇文章 「內存是硬盤 , 硬盤是磁帶」 https://blog.csdn.net/u013613428/article/details/55259924get