<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                Bulk Fetch是為了提升區間操作性能的,聊它之前,先簡單嘮叨下讀取機制,TokuDB由兩部分組成:?[tokuFT](https://github.com/Tokutek/ft-index)和?[tokudb-engine](https://github.com/Tokutek/tokudb-engine)?。? tokuFT是個支持事務的key/value存儲層,tokudb-engine是MySQL API對接層,調用關系為:tokudb-engine ->tokuFT。? tokuFT里的一個value,在tokudb-engine里就是一條row數據,底層存儲與上層調用解耦,是個很棒的設計。? 在tokuFT是個key里,索引的每個node都是大塊頭(4MB),node又細分為多個"小塊"(internal node的叫做partition,leaf node的叫做basement)。? 從磁盤讀取數據到內存的方式有2種: 1. 僅讀一個"小塊"的數據,反序列化到內存(提升point query性能,只讀取需要的那部分數據即可) 2. 讀取整個node數據,反序列化到內存(提升區間性能,一次讀取整個node磁盤數據) 對于tokudb-engine層的區間操作(比如get_next等),tokuFT這層是無狀態的,必須告訴當前的key,然后給你查找next,流程大體是: ~~~ tokudb-engine::get_next(current_key) --> tokuFT::search_next(current_key) --> tokuFT::return next ~~~ 這樣,即使tokuFT緩存了整個node數據,tokudb-engine還是遍歷著跟tokuFT要一遍:tokuFT每次都要根據當前key,多次調用compare操作最終查出next,路徑太長了!? 有什么辦法優化呢?這就是Bulk Fetch的威力: tokudb-engine向tokuFT一次要回整個node的數據,自己解析出next row數據,tokuFT的調用就省了: ~~~ tokudb-engine::get_next(current_key) --> tokudb-engine::parse_next ~~~ 從Tokutek的測試看,在使用Bulk Fetch后,能有2x-5x的性能提升。? 但并不是所有的區間操作都可以Bulk Fetch的(比如涉及update/delete),TokuDB目前實現了:SELECT、CREATE_TABLE、INSERT_SELECT和REPLACE_SELECT的Bulk Fetch功能,預計發布在7.1.8版,更多Bulk Fetch介紹:? [https://github.com/Tokutek/tokudb-engine/wiki/Bulk-Fetch](https://github.com/Tokutek/tokudb-engine/wiki/Bulk-Fetch)
                  <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>

                              哎呀哎呀视频在线观看