Mysql索引數據結構詳解

1.索引數據結構紅黑樹曲伊,Hash,B+樹詳解

索引的本質

:索引是幫助Mysql高效獲取數據的排好序數據結構

索引數據結構分類

1.二叉樹

特點:左邊小右邊大于等于父節(jié)點

缺點:如果插入自增長索引,一直單邊增長锉走,對查詢沒有意義,如下圖




2.紅黑樹

特點:自動保持平衡

缺點:樓層太高拟烫,查詢次數過多弄企,維護復雜

3.Hash表

特點:對索引值進行hash運算戏挡,得到磁盤文件指針,查詢where index=1的等值預算的時候性能非常高

缺點:空間能力差左权,做范圍查詢where index>1的時候不好做索引

4.B-Tree

葉節(jié)點具有相同的深度皮胡,葉節(jié)點的指針為空

所有索引元素不重復

節(jié)點中的數據索引從左到右遞增排列

對比:比紅黑樹樓層低,查詢效率高

缺點:每個索引對應一個值赏迟,導致索引占用空間太大


B+Tree(MySql底層采用B+Tree數據結構)

特點:非葉子節(jié)點不存儲data屡贺,只存儲索引(冗余),可以放更多的索引

葉子節(jié)點包含所有索引字段

葉子節(jié)點用指針連接锌杀,提高區(qū)間訪問的性能


2.索引是怎么支撐千萬級表的快速查找

一個索引(8B)加上一個指針(6B),mysql允許最大值為16kb,16kb/(6B+8B)=1170個分叉甩栈,所以最后結果為1170*1170*16=21902400兩千多萬

3.面試常問B+樹索引面試題解析

Mysql存儲引擎:

1.MyISAM(非聚集索引)

文件:.frm 存儲數據結構 .MYD存儲數據記錄.MYI存儲索引

查詢方式:根據索引查找內存空間指針,再根據空間指針再MYD文件查找記錄

2.InnerDB(聚集索引)

文件:.frm 存儲數據結構 .idb數據和索引存在一起

查詢方式:根據索引直接查找數據


提問:聚集索引和非聚集索引區(qū)別

答:非聚集索引是通過空間指正查找MYD文件查詢到的數據糕再,聚集索引是因為索引和數據存儲在一起量没,每一條記錄前面都有個索引,可以直接通過索引取數據

提問:為什么InnoDB表必須有主鍵亿鲜,并且推薦使用整型的自增主鍵允蜈?

答:InnoDB就是這樣設計的冤吨,通過主鍵索引構建B+Tree;整形比較大小比字符串比較大小更快更高效饶套,例如比較1<2比a>b更高效漩蟆,字符串比較還要轉換asci,自增是不用打破原來的B+Tree,直接再后面加數據妓蛮,如果不是怠李,可能需要重新元素分裂平衡

提問:為什么非主鍵索引結構葉子節(jié)點存儲的是主鍵值?

答:一致性和節(jié)省存儲空間蛤克,所有的非主鍵索引最后定位到的是主鍵索引捺癞,然后再通過主鍵索引查找數據,換而言之构挤,就是差了兩次樹髓介,非主鍵索引定位到主鍵索引,這樣節(jié)省了存儲空間筋现,如果建了多個非主鍵索引唐础,我就要保存多個記錄,如果非主鍵索引做了修改矾飞,主鍵索引沒有一膨,這樣就導致了數據不一致,但是如果非主鍵索引最后定位到主鍵索引洒沦,通過主鍵索引查找數據豹绪,這樣就保持了一致性

4.聯合索引底層數據結構又是怎樣的

和主鍵索引類似,不過是有多個字段組成

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
禁止轉載申眼,如需轉載請通過簡信或評論聯系作者瞒津。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市豺型,隨后出現的幾起案子仲智,更是在濱河造成了極大的恐慌买乃,老刑警劉巖姻氨,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異剪验,居然都是意外死亡肴焊,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門功戚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來娶眷,“玉大人,你說我怎么就攤上這事啸臀〗斐瑁” “怎么了烁落?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長豌注。 經常有香客問我伤塌,道長,這世上最難降的妖魔是什么轧铁? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任每聪,我火速辦了婚禮,結果婚禮上齿风,老公的妹妹穿的比我還像新娘药薯。我一直安慰自己,他們只是感情好救斑,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布童本。 她就那樣靜靜地躺著,像睡著了一般脸候。 火紅的嫁衣襯著肌膚如雪巾陕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天纪他,我揣著相機與錄音鄙煤,去河邊找鬼。 笑死茶袒,一個胖子當著我的面吹牛梯刚,可吹牛的內容都是我干的。 我是一名探鬼主播薪寓,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼亡资,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了向叉?” 一聲冷哼從身側響起锥腻,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后搂橙,有當地人在樹林里發(fā)現了一具尸體竹伸,經...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年幸斥,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咬扇。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡甲葬,死狀恐怖,靈堂內的尸體忽然破棺而出懈贺,到底是詐尸還是另有隱情经窖,我是刑警寧澤坡垫,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站画侣,受9級特大地震影響葛虐,放射性物質發(fā)生泄漏。R本人自食惡果不足惜棉钧,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一屿脐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧宪卿,春花似錦的诵、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至休溶,卻和暖如春代赁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背兽掰。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工芭碍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人孽尽。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓窖壕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親杉女。 傳聞我的和親對象是個殘疾皇子瞻讽,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內容