MYSQL數(shù)據(jù)庫(kù)索引

????????了解過(guò)MYSQL數(shù)據(jù)庫(kù)的人琳要,都知道索引能提高查詢效率寡具。那么為什么索引能提高查詢效率?小編將自己的一些看法分享給大家稚补。

1.什么是索引童叠?

? ????? 索引的本質(zhì)是一種數(shù)據(jù)結(jié)構(gòu)。(B+樹(shù))我們都知道索引是建立在數(shù)據(jù)表的某一列上课幕,具有索引列上的值的數(shù)據(jù)都會(huì)存儲(chǔ)在數(shù)據(jù)結(jié)構(gòu)中厦坛。

2.索引的重要性。

? ? ? ? 索引就好比一本書的目錄撰豺,通過(guò)目錄就可以快速的找到自己所需要的某一頁(yè)粪般。設(shè)想一下要是沒(méi)有目錄,那么我們就要一頁(yè)一頁(yè)進(jìn)行查找污桦,如果我們所需要的是這本書的最后一頁(yè)亩歹,那么就太費(fèi)時(shí)了。我們都知道MYSQL數(shù)據(jù)庫(kù)中的數(shù)據(jù)都是存放在磁盤中凡橱,增添了索引就能大大的減少對(duì)磁盤的訪問(wèn)小作,提高了查詢效率。

3.索引的底層到底是什么稼钩?

? ? 在MYSQL中不同的存儲(chǔ)殷勤索引底層的實(shí)現(xiàn)是不一樣的顾稀。

? ? ? ? MYISAM存儲(chǔ)殷勤底層的數(shù)據(jù)結(jié)構(gòu)為為B+樹(shù),該樹(shù)的結(jié)構(gòu)下圖如圖所示坝撑,


例如:我們要查詢Select stuName form student where stuId = 1静秆。先查看MYI文件(B+樹(shù)的數(shù)據(jù)結(jié)構(gòu)在MYI文件)查看stuID 是否有索引如果有就會(huì)查找索引樹(shù)? 通過(guò)data找到地址對(duì)應(yīng)MYD(數(shù)據(jù)庫(kù)中數(shù)據(jù)表的數(shù)據(jù)在MYD文件中)的文件位置將結(jié)果值返回給我們粮揉。MYISAM存儲(chǔ)殷勤的索引也成為非聚集索引。


INNODB存儲(chǔ)殷勤的底層數(shù)據(jù)結(jié)構(gòu)是B+樹(shù)抚笔,結(jié)構(gòu)如下圖所示所示扶认,


INNODB的存儲(chǔ)殷勤的葉子節(jié)點(diǎn)攜帶了數(shù)據(jù),該存儲(chǔ)殷勤的索引也稱聚集索引殊橙。

4.是不是索引越多越好辐宾?

? ? ? ? ?1.當(dāng)數(shù)據(jù)量比較少時(shí),不適合用索引膨蛮。例如叠纹,當(dāng)一本書的內(nèi)容只有2頁(yè)時(shí),目錄就有5頁(yè)敞葛,這是? ? ? 得不償失的誉察。

? ? ? ? ? 2.索引雖然提高查詢的效率,但是在insert惹谐,updata冒窍,delect降低了更新表的速度。

5.什么情況下不適合建立索引豺鼻?

? ? ? ? 1.在查詢過(guò)程中很少用到的查詢列综液。

????????2.表記錄太少。

? ? ? ? 3.經(jīng)常増刪改的表儒飒。

? ? ? ? 4.某個(gè)數(shù)據(jù)列包含許多重復(fù)的內(nèi)容谬莹。

6.索引在什么情況下失效?

? ? ? ? 1.全字匹配我最愛(ài)?

? ? ? ? ?例如:一個(gè)學(xué)生表的某一個(gè)索引由stuName,stuAge,stuPos這三列組成桩了,sql語(yǔ)句為 select *? ? from student where stuName='張三',stuAge='12' and stuPost=12; 如果where條件后面的屬性的順序和建立索引時(shí)屬性的順序不同那么索引失效附帽。

? ? ? ?2. 最佳左前綴法則

? ? ? ? 例如:索引是由這stuName,stuAge,stuPos三列組成那么查詢語(yǔ)句。查詢語(yǔ)句為select stuName,stuAge,stuPos foem student 不會(huì)發(fā)生索引井誉。如果查詢條件為select stuAge,stuPos foem student 會(huì)發(fā)生索引蕉扮。

? ? ????3.在索引列上做(計(jì)算,函數(shù)颗圣,類型裝換)操作會(huì)導(dǎo)致索引失效喳钟。

????????例如:select * from student where left(name,1) = '張';

? ? ? ?4.mysql在使用!= 或者 <> 時(shí)索引失效在岂。

? ? ? ? 5.在使用is null? 或者 not is null 也會(huì)導(dǎo)致索引失效奔则。

? ? ? ? 6.在使用kike%abc會(huì)導(dǎo)致所以失效,kikeabc%不會(huì)導(dǎo)致索引失效蔽午。

? ? ? ? 7.數(shù)字字符串不加單引號(hào)會(huì)導(dǎo)致索引失效算途。

? ? ? ? 8.使用or鏈接詞會(huì)導(dǎo)致索引失效翘贮。

這些就是小編的一些看法净神。不足之處希望大家能指出來(lái)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末驾讲,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖尉咕,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異璃岳,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)悔捶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門铃慷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人蜕该,你說(shuō)我怎么就攤上這事犁柜。” “怎么了堂淡?”我有些...
    開(kāi)封第一講書人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵馋缅,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我绢淀,道長(zhǎng)萤悴,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任皆的,我火速辦了婚禮覆履,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘费薄。我一直安慰自己硝全,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布楞抡。 她就那樣靜靜地躺著伟众,像睡著了一般。 火紅的嫁衣襯著肌膚如雪召廷。 梳的紋絲不亂的頭發(fā)上凳厢,一...
    開(kāi)封第一講書人閱讀 51,727評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音竞慢,去河邊找鬼数初。 笑死,一個(gè)胖子當(dāng)著我的面吹牛梗顺,可吹牛的內(nèi)容都是我干的泡孩。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼寺谤,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼仑鸥!你這毒婦竟也來(lái)了吮播?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤眼俊,失蹤者是張志新(化名)和其女友劉穎意狠,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體疮胖,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡环戈,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了澎灸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片院塞。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖性昭,靈堂內(nèi)的尸體忽然破棺而出拦止,到底是詐尸還是另有隱情,我是刑警寧澤糜颠,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布汹族,位于F島的核電站,受9級(jí)特大地震影響其兴,放射性物質(zhì)發(fā)生泄漏顶瞒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一元旬、第九天 我趴在偏房一處隱蔽的房頂上張望搁拙。 院中可真熱鬧,春花似錦法绵、人聲如沸箕速。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)盐茎。三九已至,卻和暖如春徙赢,著一層夾襖步出監(jiān)牢的瞬間字柠,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工狡赐, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留窑业,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓枕屉,卻偏偏與公主長(zhǎng)得像常柄,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

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

  • MySQL 數(shù)據(jù)庫(kù)專題放送~ 前言 數(shù)據(jù)庫(kù)索引本質(zhì)上是一種數(shù)據(jù)結(jié)構(gòu)(存儲(chǔ)結(jié)構(gòu)+算法)西潘,目的是為了加快目標(biāo)數(shù)據(jù)檢索的...
    markfork閱讀 22,230評(píng)論 1 54
  • 索引在數(shù)據(jù)庫(kù)開(kāi)發(fā)中有非常重要的作用卷玉,通過(guò)在表字段中建立索引可以優(yōu)化查詢,確保數(shù)據(jù)的唯一性喷市,并且可以對(duì)任何全文索引字...
    全棧coder閱讀 648評(píng)論 0 4
  • 之前一直對(duì)mysql的數(shù)據(jù)的索引有個(gè)誤解相种,一直將mylasm和innodb的數(shù)據(jù)結(jié)構(gòu)搞錯(cuò)。 mylasm和inno...
    天蝎scorpion閱讀 273評(píng)論 0 0
  • 目錄 1.何種查詢支持索引品姓?2.注意事項(xiàng)和建議 一 何種查詢支持索引寝并? 1 MySQL 目前支持前導(dǎo)列 2.索引列...
    markfork閱讀 6,709評(píng)論 0 13
  • 又到秋收時(shí)節(jié),季子彎著腰在田間收著麥子腹备,每年都是這個(gè)時(shí)候收麥衬潦,但是今年的麥子少些。將收好的麥子交疊堆起馏谨,捆在豎立在...
    TOKYOPaprika閱讀 341評(píng)論 0 1