1)innodb將資料和索引儲存在一起
2)innodb索引是基於b-tree的clustered-index,b-tree中的每個結點儲存key+row data;innodb中的第二個索引儲存,在搜尋時,先通過key找到pk,再通過pk搜尋b-tree的結點,從中找到row data
3)由於聚集索引和行資料存放一起(在同乙個資料頁中),所以利用聚集索引訪問資料行時,非常的快,同乙個資料頁在訪問索引時,已經把頁載入到buffer中,在訪問資料時,等於了乙個順序io的訪問(記憶體中完成)。
4)適應的雜湊索引
如果乙個表幾乎完全配合主記憶體,在其上執行查詢最快的方法就是使用雜湊索引。innodb有乙個自動機制,它監視對為乙個表定義的索引的索引搜尋。如果innodb注意到查詢會從建立乙個雜湊索引中獲益,它會自動地這麼做。
Innodb搜尋引擎的鎖機制
看了好幾天部落格,學的挺艱難,由於鎖的種模擬較多,大多數部落格僅僅是羅列出來,分不清這些概念的上下級或者說包含關係,也可以理解為每個概念的作用域,所以看起來很痛苦,也記不住,有種死記硬背的感覺。然後今天突發靈感,有了一點突破,記錄一下,如有不對,日後再修改。下面定義的共享鎖 排它鎖,應該說只是乙個廣...
InnoDB的索引模型
在 mysql 中,索引是在儲存引擎層實現的,儲存引擎沒有統一的索引標準,所以在不同儲存引擎中索引的工作方式並不一樣。即使多個儲存引擎支援同一種型別的索引,其底層的實現也可能不同。而在mysql 資料庫中,innodb 儲存引擎的使用最為廣泛,所以我們來了解一下innodb 的索引模型。innodb...
InnoDB索引實現
1 innodb的資料檔案本身就是索引檔案。從上文知道,myisam索引檔案 是分離的,索引檔案僅儲存資料記錄的位址。而在innodb中,表資料 檔案本身就是按b tree組織的乙個索引結構,這棵樹的葉節點data域 儲存了完整的資料記錄,這個索引的key是資料表的主鍵,因此innodb 表資料檔案...