mysql索引總結(jié)

mysql存儲引擎掺涛,主流存儲引擎有兩種,主要區(qū)別

? ? ? ? ? ? 1.MyISAM:表操作性能高,但不支持事務(wù),InnoDB支持事務(wù),mysql5.5以后默認(rèn)的存儲引擎

? ? ? ? ? ? 2.MyISAM索引結(jié)構(gòu)為B-TREE,InnoDB索引結(jié)構(gòu)為B+TREE

? ? ? ? ? ? 3.MyISAM索引文件和數(shù)據(jù)文件分離急膀,InnoDB數(shù)據(jù)文件本身為B+TREE結(jié)構(gòu)

? ? 注:關(guān)于InnoDB使用B+TREE而不用紅黑樹。因為紅黑樹內(nèi)存操作龄捡,不適合過大的數(shù)據(jù)量操作


索引結(jié)構(gòu)類型:

? ? ? ? ? ? B-TREE:

? ? ? ? ? ? ? ? ? ? 1.樹上所有節(jié)點元素不重復(fù)卓嫂,每個節(jié)點都存儲相應(yīng)數(shù)據(jù)的引用。

? ? ? ? ? ? ? ? ? ? 2.數(shù)據(jù)從左到右遞增聘殖,

? ? ? ? ? ? ? ? ? ? 3.葉子節(jié)點不存在指針

? ? ? ? ? ? B+TREE

? ? ? ? ? ? ? ? ? ? 1.葉子節(jié)點存儲數(shù)據(jù)晨雳,包含父節(jié)點索引。非葉子節(jié)點不存儲數(shù)據(jù)奸腺,所以父節(jié)點可以存儲更多索引

? ? ? ? ? ? ? ? ? ? ? ?*注* mysql讀取按頁讀取悍募,每頁16k,每個索引節(jié)點8Byte+6Byte指針洋机,所以每頁大概1000多條數(shù)據(jù)

? ? ? ? ? ? ? ? ? ? 2.葉子節(jié)點為鏈表結(jié)構(gòu)坠宴。節(jié)點之間用指針連接,方便區(qū)間查詢

? ? ? ? ? ? ? ? ? ? 3.必須有主鍵绷旗,并推薦使用整型自增主鍵喜鼓。若表中未創(chuàng)建主鍵,則默認(rèn)生成一列主鍵

? ? ? ? ? ? ? ? ? ? 4.若為二級索引衔肢,則葉子節(jié)點存儲主鍵id庄岖。這樣能保證一致性,并節(jié)省空間角骤。

? ? ? ? ? ? ? ? ? ? 5.二級索引查詢會有回表操作隅忿,所以若查詢使用二級索引推薦使用覆蓋索引,這樣不會有回表操作邦尊,查詢性能高

? ? ? ? ? ? HASH

? ? ? ? ? ? ? ? ? ? 查詢快背桐,僅支持等于查詢


sql索引使用注意事項

? ? ? ? ? ? 1.使用全值匹配 。即使用有索引字段等于查詢

? ? ? ? ? ? 2.最左前綴法則蝉揍。即若索引為聯(lián)合索引链峭,使用的查詢字段不可跳過索引中的列

? ? ? ? ? ? 3.不在索引列上做運算。如使用時間類型轉(zhuǎn)換又沾,left等運算弊仪,會導(dǎo)致索引失效

? ? ? ? ? ? 4.盡量使用覆蓋索引,即使用select 字段 代替select * 使用

? ? ? ? ? ? 5.not in 杖刷,not exists ,? != 励饵,is null , is not null無法使用索引

? ? ? ? ? ? 6.like操作開頭模糊無法使用索引。即%xxx

? ? ? ? ? ? 7.若為字符串滑燃,不加‘’索引可能會失效

? ? ? ? ? ? 8.in查詢有可能會使用到索引役听。在阿里規(guī)范中(泰山版)有寫in查詢不超過1000,性能影響不大


關(guān)于count(*)? count(1) count(字段)

? ? ? ? ? ? ?若字段有索引則性能差距不大,使用執(zhí)行計劃可查看

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末禾嫉,一起剝皮案震驚了整個濱河市灾杰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌熙参,老刑警劉巖艳吠,帶你破解...
    沈念sama閱讀 223,002評論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異孽椰,居然都是意外死亡昭娩,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評論 3 400
  • 文/潘曉璐 我一進(jìn)店門黍匾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來栏渺,“玉大人,你說我怎么就攤上這事锐涯】恼铮” “怎么了?”我有些...
    開封第一講書人閱讀 169,787評論 0 365
  • 文/不壞的土叔 我叫張陵纹腌,是天一觀的道長霎终。 經(jīng)常有香客問我,道長升薯,這世上最難降的妖魔是什么莱褒? 我笑而不...
    開封第一講書人閱讀 60,237評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮涎劈,結(jié)果婚禮上广凸,老公的妹妹穿的比我還像新娘。我一直安慰自己蛛枚,他們只是感情好谅海,可當(dāng)我...
    茶點故事閱讀 69,237評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著坤候,像睡著了一般胁赢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上白筹,一...
    開封第一講書人閱讀 52,821評論 1 314
  • 那天,我揣著相機與錄音谅摄,去河邊找鬼徒河。 笑死,一個胖子當(dāng)著我的面吹牛送漠,可吹牛的內(nèi)容都是我干的顽照。 我是一名探鬼主播,決...
    沈念sama閱讀 41,236評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼代兵!你這毒婦竟也來了尼酿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,196評論 0 277
  • 序言:老撾萬榮一對情侶失蹤植影,失蹤者是張志新(化名)和其女友劉穎裳擎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體思币,經(jīng)...
    沈念sama閱讀 46,716評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡鹿响,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,794評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了谷饿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惶我。...
    茶點故事閱讀 40,928評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖博投,靈堂內(nèi)的尸體忽然破棺而出绸贡,到底是詐尸還是另有隱情,我是刑警寧澤毅哗,帶...
    沈念sama閱讀 36,583評論 5 351
  • 正文 年R本政府宣布听怕,位于F島的核電站,受9級特大地震影響黎做,放射性物質(zhì)發(fā)生泄漏叉跛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,264評論 3 336
  • 文/蒙蒙 一蒸殿、第九天 我趴在偏房一處隱蔽的房頂上張望筷厘。 院中可真熱鬧,春花似錦宏所、人聲如沸酥艳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽充石。三九已至,卻和暖如春霞玄,著一層夾襖步出監(jiān)牢的瞬間骤铃,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評論 1 274
  • 我被黑心中介騙來泰國打工坷剧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留惰爬,地道東北人。 一個月前我還...
    沈念sama閱讀 49,378評論 3 379
  • 正文 我出身青樓惫企,卻偏偏與公主長得像撕瞧,于是被迫代替她去往敵國和親陵叽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,937評論 2 361

推薦閱讀更多精彩內(nèi)容