mysql索引底層原理

2022-08-23 10:27:07 字數 637 閱讀 5692

索引的本質---資料結構---組織資料的方式

innodb沒有主鍵索引時,判斷是否含有唯一索引,沒有唯一就生成乙個隱藏的row -id作為主鍵

在資料較少時是以鍊錶的形式儲存資料的,當資料過多,長鍊表會影響資料的查詢,此時會將資料通過頁的形式進行儲存,預設一頁儲存16kb資料,,每頁會與每頁之間通過指標進行連線(雙向連線),當這樣的資料也形成乙個長鍊表,會將這些資料進行連線形成乙個節點,節點存放的是葉子的節點中的第乙個資料的索引,通過指標進行指向,這樣再進行資料的增長就繼續向生成節點,就形成了b+tree

聚簇索引(主鍵索引)

1.主鍵排序 1

2.葉子節點儲存了完整的使用者資料,包含隱藏資訊

聯合索引

葉子節點存放的是聯合索引欄位與主鍵字段   

通過聯合索引查詢資料的時候若查詢條件是主鍵字段或者是聯合索引字段可以不需要回表,如果查詢的是其他字段,需要回表至主鍵的b+tree中查詢

MySQL索引底層(二) 索引底層原理

聚集索引 上次我們講到了主鍵的索引,我們可以執行一下sql語句 explain select from t user where a 1 我們可以看到這條sql走的是主鍵的索引,而在mysql的innodb中,主鍵索引則是聚集索引,資料的物理順序與鍵值的邏輯 索引 順序相同,其實就是說主鍵索引跟其他...

MySQL索引底層原理

通過hash演算法,能快速檢索資料 資料碰撞問題用鏈位址法 無法進行範圍搜尋 解決雜湊索引無法範圍搜尋的問題 極端情況下會退化成線性鍊錶,自增主鍵必然會導致極端情況 會自動調整樹形態,使其保持平衡,調整會消耗效能 無法完全解決二叉查詢樹的問題 絕對平衡的二叉樹,更耗效能 根本解決了紅黑數的問題 由於...

mysql底層 MySQL索引底層實現原理

索引的本質 mysql官方對索引的定義為 索引 index 是幫助mysql高效獲取資料的資料結構。提取句子主幹,就可以得到索引的本質 索引是資料結構。我們知道,資料庫查詢是資料庫的最主要功能之一。我們都希望查詢資料的速度能盡可能的快,因此資料庫系統的設計者會從查詢演算法的角度進行優化。最基本的查詢...