聚簇索引並不是一種單獨的索引型別,而是一種資料儲存的方式。聚簇索引表(innodb)的資料是放在葉子節點,而非聚簇索引(myisam)的的葉子節點是存放指向資料行的指標。
要是每個索引列都存放著資料,那麼將產生巨大的儲存消耗,故一般只有在主鍵列的索引(主鍵索引)的葉子節點存放著資料,其它非主鍵索引葉子節點將指向主鍵索引,如果沒有主鍵,將會選擇乙個唯一非空作為聚簇索引,如還是沒有則會隱式定義乙個主鍵作為一聚簇索引。如圖:
在innodb,當使用主鍵索引進行查詢時,效能會相當的高,因為資料就在索引上,找到了索引的位置以為著也找到了資料。而使用非聚簇索引的查詢,將會根據找到的主鍵索引值進行二次查詢,故效率相對低一些。
在myisam,主鍵索引和其它索引並沒有什麼區別。
當然這並不表示,只要是用主鍵索引查詢,innodb就比myisam快,實際的環境測試中,單純的crud操作,myisam效率遠遠高於innodb
mysql 聚簇索引例項 MySQL聚簇索引
mysql作為迭代了很多個版本的資料庫。在資料庫的索引上實現了很多的優化版本,從一開始的只允許乙個表有乙個列為索引值,到目前版本可支援多個列建立索引值,更多關於索引優化版本的描述,以後有機會筆者再寫一篇文章。本文主要介紹索引當中的聚簇索引。mysql官方對聚簇索引的定義是,聚簇索引並不是一種單獨的索...
mysql聚簇索引設定 Mysql 聚簇索引
整體概述 1.innodb的主索引檔案上 直接存放該行資料,稱為聚簇索引,次索引指向對主鍵的引用 2.myisam中,主索引和次索引,都指向物理行 磁碟位置 哈哈,說了兩句貌似聽不懂的話。一。通俗解釋 我們可以這麼理解 聚簇索引 innodb 索引的葉節點就是資料節點,下邊實打實有資料。非聚簇索引 ...
mysql 聚簇索引表 Mysql的聚簇索引
聚簇索引並不是一種單獨的索引型別,而是一種資料儲存方式。innodb的聚簇索引實際上是在同乙個結構中儲存了b tree索引和資料行。乙個表只能有乙個聚簇索引。innodb中,葉子頁包含了行的全部資料,但是節點頁只包含了索引列。innodb通過主鍵聚集資料。優點 1.可以把相關資料儲存在一起。例如實現...