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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ### Innodb引擎的底層實現 InnoDB 是聚集索引方式,因此數據和索引都存儲在同一個文件里 > 建表的時候 InnoDB 就會自動建立好主鍵 ID 索引樹,這也是為什么 Mysql 在建表時要求必須指定主鍵的原因。當我們為表里某個字段加索引時 InnoDB 會怎么建立索引樹呢?比如我們要給 user_name 這個字段加索引,那么 InnoDB 就會建立 user_name 索引 B+樹,節點里存的是 user\_name 這個 KEY,葉子節點存儲的數據的是主鍵 KEY。葉子存儲的是主鍵 KEY,拿到主鍵 KEY 后,InnoDB 才會去主鍵索引樹里根據剛在 user_name 索引樹找到的主鍵 KEY 查找到對應的數據 ![](https://img.kancloud.cn/64/ce/64ce0145fed1bcd1d0f6b48b1e57003b_1440x518.png) **為什么 InnoDB 只在主鍵索引樹的葉子節點存儲了具體數據,但是其他索引樹卻不存具體數據呢,而要多此一舉先找到主鍵,再在主鍵索引樹找到對應的數據呢?** > 其實很簡單,因為 InnoDB 需要節省存儲空間。一個表里可能有很多個索引,InnoDB 都會給每個加了索引的字段生成索引樹,如果每個字段的索引樹都存儲了具體數據,那么這個表的索引數據文件就變得非常巨大(數據極度冗余了)。從節約磁盤空間的角度來說,真的沒有必要每個字段索引樹都存具體數據,通過這種看似“多此一舉”的步驟,在犧牲較少查詢的性能下節省了巨大的磁盤空間,這是非常有值得的 在進行 InnoDB 和 MyISAM 特點對比時談到,MyISAM 查詢性能更好,從上面索引文件數據文件的設計來看也可以看出原因:MyISAM 直接找到物理地址后就可以直接定位到數據記錄,但是 InnoDB 查詢到葉子節點后,還需要再查詢一次主鍵索引樹,才可以定位到具體數據。等于 MyISAM 一步就查到了數據,但是 InnoDB 要兩步,那當然 MyISAM 查詢性能更高
                  <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>

                              哎呀哎呀视频在线观看