資料庫中的索引技術 雜湊索引

2021-08-26 20:20:16 字數 879 閱讀 6565

1、雜湊索引

雜湊索引(hash index)基於雜湊表實現,只有精確匹配索引所有列的查詢才有效。對於每一行資料,儲存引擎都會對所有的索引列計算乙個雜湊碼(hash code),雜湊碼是乙個較小的值,並且不同鍵值的行計算出來的雜湊碼也不一樣。雜湊索引將所有的雜湊碼儲存在索引中,同時在雜湊表中儲存指向每個資料行的指標。

對於hash相同的,採用鍊錶的方式解決衝突。類似於hashmap。因為索引的結構是十分緊湊的,所以hash索引的查詢很快。

舉例:

hash索引的限制:

2、自適應雜湊

在mysql中innodb引擎有乙個特殊的功能叫做自適應雜湊索引,它會在記憶體中基於b-tree索引的基礎上面建立乙個雜湊索引,這讓b-tree索引具備了一些雜湊索引的優點。

建立自定義雜湊索引:

如果儲存引擎不支援雜湊索引,則可以模擬像innodb一樣建立雜湊索引,這可以享受一些雜湊索引的便利,例如只需要很小的索引就可以為超長的鍵建立索引。

思路:在b-tree基礎上建立乙個偽雜湊索引。這和真正的雜湊索引不是一回事,因為還是使用b-tree進行查詢,但是它使用雜湊值而不是鍵本身進行索引查詢。你需要做的就是在查詢的where子句中手動指定使用雜湊函式。

資料庫中的索引

1.概念 索引是在資料庫表或者檢視上建立的物件,目的是為了加快對錶或檢視的查詢的速度 簡單理解 索引是乙個單獨的 物理的資料庫結構,它是某個表中一列或若干列值的集合和相應的指向表中物理標識這些值的資料頁的邏輯指標清單 深刻理解 按照儲存方式分為 聚集與非聚集索引 需要重視和區別的概念,後面詳解 按照...

資料庫中的索引

總結 1.什麼是索引 資料庫中的索引是某個表中一列或多列值的集合和相應的指向表中物理標識這些值的資料頁的邏輯指標清單。2.分類 唯一索引 unique 不允許兩行具有相同的索引值 建立了唯一約束,系統將自動建立唯一索引 主鍵索引 主鍵索引要求主鍵中的每個值是唯一的,建立主鍵自動建立主鍵索引 聚集索引...

資料庫中的索引

索引 與表相關的一種選擇結構,可建立在表中的一列或多列上,一旦建立,由資料庫自動維護和使用,對使用者是完全透明的。它的建立或刪除對錶沒有任何影響。注意 1.索引是一種資料庫物件,並不改變表的邏輯結構,而是在物理儲存結構上增加一些輔助資訊,以提高查詢速度。2.只有當按指定的索引列的值查詢或按索引列的順...