<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                [TOC] # LSM Tree 架構 ![](https://img.kancloud.cn/f5/c8/f5c80815a65ab7f0ca237c6e779d1b75_814x406.png) OceanBase 數據庫的存儲引擎基于 LSM Tree 架構,將數據分為**~靜態~****基線數據**(放在 SSTable 中)和**~動態~****增量數據**(放在 MemTable 中)兩部分,其中 SSTable 是只讀的,一旦生成就不再被修改,存儲于磁盤;MemTable 支持讀寫,存儲于內存。數據庫 DML 操作插入、更新、刪除等首先寫入 MemTable,等到 MemTable 達到一定大小時轉儲到磁盤成為 SSTable。在進行查詢時,需要分別對 SSTable 和 MemTable 進行查詢,并將查詢結果進行歸并,返回給 SQL 層歸并后的查詢結果。同時在內存實現了 Block Cache 和 Row cache,來避免對基線數據的隨機讀。 當內存的增量數據達到一定規模的時候,會觸發增量數據和基線數據的合并,把增量數據落盤。同時每天晚上的空閑時刻,系統也會自動每日合并。 OceanBase 本質上是一個基線加增量的存儲引擎,跟關系數據庫差別很大,同時也借鑒了部分傳統關系數據庫存儲引擎的優點。 傳統數據庫把數據分成很多頁面,OceanBase 數據庫也借鑒了傳統數據庫的思想,把數據分成很多 2MB 為單位的宏塊。合并時采用增量合并的方式,OceanBase 數據庫的合并代價相比 LevelDB 和 RocksDB 都會低很多。另外,OceanBase 數據庫通過輪轉合并的機制把正常服務和合并時間錯開,使得合并操作對正常用戶請求完全沒有干擾。 由于 OceanBase 數據庫采用基線加增量的設計,一部分數據在基線,一部分在增量,原理上每次查詢都是既要讀基線,也要讀增量。為此,OceanBase 數據庫做了很多的優化,尤其是針對單行的優化。OceanBase 數據庫內部除了對數據塊進行緩存之外,也會對行進行緩存,行緩存會極大加速對單行的查詢性能。對于不存在行的“空查”,我們會構建布隆過濾器,并對布隆過濾器進行緩存。OLTP 業務大部分操作為小查詢,通過小查詢優化,OceanBase 數據庫避免了傳統數據庫解析整個數據塊的開銷,達到了接近內存數據庫的性能。另外,由于基線是只讀數據,而且內部采用連續存儲的方式,OceanBase 數據庫可以采用比較激進的壓縮算法,既能做到高壓縮比,又不影響查詢性能,大大降低了成本。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看