1. 程式人生 > >聚簇索引和非聚簇索引的區別

聚簇索引和非聚簇索引的區別

style 開頭 http inf 這就是 class 拼音 字母 就是

一、聚簇索引和非聚簇索引

  1、聚簇索引和非聚簇索引:

    我拿查字典做一個比喻,字典的頁面就好比是物理排列順序,物理排列順序是固定的,查詢的方式就好比是索引,區別是聚簇索引就好比是拼音查詢,每一個字母查詢出來的頁面順序是跟你字母的順序一致的,a字母查詢出來的頁面一定是在c字母查詢出來的頁面前面,而非聚簇索引就好比是筆畫查詢,筆畫少的查出來的頁面不一定在筆畫多的查出來的頁面前面,也就是你通過筆畫查詢的順序和頁面的順序並不是一致的。

    再舉一例:聚簇索引的順序就是數據的物理存儲順序,而對非聚簇索引的索引順序與數據物理排列順序無關。舉例來說,你翻到新華字典的漢字“爬”那一頁就是P開頭的部分,這就是物理存儲順序(聚簇索引);而不用你到目錄,找到漢字“爬”所在的頁碼,然後根據頁碼找到這個字(非聚簇索引)

   索引的葉節點就是數據節點。非聚簇索引的葉節點仍然是索引節點,只不過有一個指針指向對應的數據塊

  2、聚簇索引我自己的理解:(對應MyISAM)

    技術分享圖片

  

    非聚簇索引:(對應Innodb)       技術分享圖片          3、聚簇索引(以Innodb為例)和非聚簇索引(以MyISAM-->三個文件是分開的為例):       非聚簇索引:       技術分享圖片

      聚簇索引:

     技術分享圖片

    4、需要註意的知識點:       (1)、聚簇索引的唯一性
       正式聚簇索引的順序就是數據的物理存儲順序,所以一個表最多只能有一個聚簇索引,因為物理存儲只能有一個順序。正因為一個表最多只能有一個聚簇索引,所以它顯得更為珍貴,一個表設置什麽為聚簇索引對性能很關鍵       

聚簇索引和非聚簇索引的區別