mysql索引,雜湊索引,聚集索引,二級索引

2021-09-26 23:16:04 字數 552 閱讀 3300

雜湊索引

雜湊索引,只有精確匹配索引所有列的查詢才有效,對於每一行資料,儲存引擎都會對所有的索引計算乙個雜湊碼。雜湊索引將所有的雜湊碼儲存在索引中,同時在雜湊表中儲存指向每個資料行的指標。(如果多個列的雜湊值相同,索引會以鍊錶的方式存放多個指標記錄到同乙個雜湊條目中。)

因為索引自身只儲存對應的雜湊值,所以索引的結構十分緊湊,雜湊索引查詢的速度非常快,但是雜湊索引也有它的限制:

聚集索引

每個儲存引擎為innodb的表都有乙個特殊的索引,叫聚集索引。聚集索引並不是一種單獨的索引型別,而是一種資料儲存方式。當表有聚集索引的時候,它的資料行實際上存放在葉子頁中。乙個表不可能有兩個地方存放資料,所以乙個表只能有乙個聚集索引。

因為是儲存引擎負責實現索引,因此不是所有的儲存引擎都支援聚集索引。innodb表中聚集索引的索引列就是主鍵,所以聚集索引頁叫主鍵索引。

二級索引

對於innodb表,在非主鍵列的其他列上建的索引就是二級索引(因為聚集索引只有乙個)。二級索引可以有0個或多個。二級索引的節點頁和聚集索引一樣,只存被索引列的值,而二級索引的葉子頁除了索引列值,還存這一列對應的主鍵值。

mysql索引之聚集索引

聚集索引不是一種單獨的索引型別,而是一種儲存資料方式。其具體細節依賴於實現方式,但是innodb的聚集索引實際上在同樣的結構中儲存了b tree索引和資料行。當表有聚集索引的時候,它的資料行實際儲存在索引的葉子頁中。術語 聚集 指實際的資料行和相關的鍵值都儲存在一起。每個表只能有乙個聚集索引,因為不...

MySQL 聚集索引 非聚集索引簡述

mysql索引中可以分為聚集索引與非聚集索引兩類,在網路上也見過聚簇的說法,這裡先簡單介紹兩種索引的含義與適用場景。懶得畫圖,全是字。索引的鍵值邏輯順序決定了表資料行的物理儲存順序,也就是在資料庫上連線的記錄在磁碟上的物理儲存位址也是相鄰的,注意這一點特性,我們可以分析出它的適用情況。由於聚集索引規...

MySQL聚集索引和非聚集索引

mysql的innodb儲存引擎的索引分為聚集索引和非聚集索引兩大類,理解聚集索引和非聚集索引可通過對比漢語字典的索引。漢語字典提供了兩類檢索漢字的方式,第一類是拼音檢索 前提是知道該漢字讀音 比如拼音為cheng的漢字排在拼音chang的漢字後面,根據拼音找到對應漢字的頁碼 因為按拼音排序,二分查...