聚簇索引和非聚簇索引的區別
阿新 • • 發佈:2018-10-04
style 開頭 http inf 這就是 class 拼音 字母 就是
正式聚簇索引的順序就是數據的物理存儲順序,所以一個表最多只能有一個聚簇索引,因為物理存儲只能有一個順序。正因為一個表最多只能有一個聚簇索引,所以它顯得更為珍貴,一個表設置什麽為聚簇索引對性能很關鍵
一、聚簇索引和非聚簇索引
1、聚簇索引和非聚簇索引:
我拿查字典做一個比喻,字典的頁面就好比是物理排列順序,物理排列順序是固定的,查詢的方式就好比是索引,區別是聚簇索引就好比是拼音查詢,每一個字母查詢出來的頁面順序是跟你字母的順序一致的,a字母查詢出來的頁面一定是在c字母查詢出來的頁面前面,而非聚簇索引就好比是筆畫查詢,筆畫少的查出來的頁面不一定在筆畫多的查出來的頁面前面,也就是你通過筆畫查詢的順序和頁面的順序並不是一致的。
再舉一例:聚簇索引的順序就是數據的物理存儲順序,而對非聚簇索引的索引順序與數據物理排列順序無關。舉例來說,你翻到新華字典的漢字“爬”那一頁就是P開頭的部分,這就是物理存儲順序(聚簇索引);而不用你到目錄,找到漢字“爬”所在的頁碼,然後根據頁碼找到這個字(非聚簇索引)
索引的葉節點就是數據節點。非聚簇索引的葉節點仍然是索引節點,只不過有一個指針指向對應的數據塊
2、聚簇索引我自己的理解:(對應MyISAM)
非聚簇索引:(對應Innodb) 3、聚簇索引(以Innodb為例)和非聚簇索引(以MyISAM-->三個文件是分開的為例): 非聚簇索引:
聚簇索引:
4、需要註意的知識點: (1)、聚簇索引的唯一性
正式聚簇索引的順序就是數據的物理存儲順序,所以一個表最多只能有一個聚簇索引,因為物理存儲只能有一個順序。正因為一個表最多只能有一個聚簇索引,所以它顯得更為珍貴,一個表設置什麽為聚簇索引對性能很關鍵
聚簇索引和非聚簇索引的區別