MySQL之索引

1)什么是索引:

索引是幫助mysql高效獲取數(shù)據(jù)的數(shù)據(jù)結構棚贾,

索引的本質就是數(shù)據(jù)結構真慢。\color{red}{可以理解為排好序快速查找的數(shù)據(jù)結構}

結論:數(shù)據(jù)本身之外服爷,數(shù)據(jù)庫還維護著一個滿足特定查找算法的數(shù)據(jù)結構药薯,這些數(shù)據(jù)結構以某種方式指向數(shù)據(jù),這樣就可以在這些數(shù)據(jù)結構的基礎上實現(xiàn)高級查找算法狂丝,這種數(shù)據(jù)結構就是索引换淆。

一般來說,索引本身也很大几颜,不可能全部儲存在內存中倍试,因此,索引往往以索引文件的形式儲存在磁盤上蛋哭。

2)索引的優(yōu)勢和劣勢:

優(yōu)勢:

提高數(shù)據(jù)檢索的效率县习,降低了數(shù)據(jù)庫OI成本。

通過索引列對數(shù)據(jù)進行排序,降低數(shù)據(jù)排序成本躁愿,降低了CPU的消耗叛本。

劣勢:

實際上索引也是一張表,該表保存了主鍵與索引字段彤钟,并指向實體表的記錄所以索引列也是要占內存空間的来候。

雖然索引大大的提高了查詢的速度,同時也會降低更新表的速度样勃,對表進行insert吠勘、update性芬、delete峡眶。因為更新表時,mysql不僅要保 存數(shù)據(jù)植锉,還要保存一下索引文件每次更新添加了索引列的字段辫樱,都會調整因為更新帶來的鍵值變化后的索引信息。

索引只是提高效率的一個因素俊庇,如果你的mysql有大數(shù)據(jù)量的表狮暑,就需要花時間研究建立最優(yōu)秀的索引,或優(yōu)化查詢辉饱。

3)索引的類型:\color{red}{(一般來說搬男,一個表肯定是復合索引優(yōu)于單值索引的)}

單值索引:即一個索引只包含單個列,一個表可以有多個單列索引彭沼。

唯一索引:索引列的值必須唯一缔逛,但允許空值。

復合索引:即一個索引包含了多個列姓惑。

  1. 基本語法:
ALTER TABLE tb1_name ADD PRIMARY KEY(column_list);//該語句添加一個主鍵索引褐奴,這意味著索引值必須是唯一的,且不能為null于毙。

ALTER TABLE tb1_name ADD UNIQUE 'index_name' (column_list);//該語句添加的是唯一索引敦冬,該索引的值必須是唯一的(除了NULL外,NULL可能會出現(xiàn)很多次)

ALTER TABLE tb1_name ADD INDEX 'index_name' (column_list);//該語句添加普通索引唯沮,索引值可出現(xiàn)多次

ALTER TABLE tb1_name ADD INDEX 'idx_column_list1_column_list2' (`column_list1`, `column_list2`);//該語句添加復合索引

5)mysql索引結構:

常見的MySQL索引有 :BTree索引:Hash索引:full-text全文索引:R-Tree索引:

主要的是:BTree索引

image.jpeg

6)那些情況下需要建立索引:

1脖旱、主鍵自動建立唯一索引。

2介蛉、頻繁作為查詢條件的字段應該創(chuàng)建索引萌庆。

3、查詢中與其他表關聯(lián)的字段甘耿,外鍵關系建立索引踊兜。

4、頻繁更新的字段不適合創(chuàng)建索引(因為每次更新不單單更新了記錄還會更新索引文件)佳恬。

5捏境、where條件里用不到的字段不用創(chuàng)建索引于游。

6、單鍵/組合索引選擇的問題垫言?(在高并發(fā)下偏向創(chuàng)建組合索引)贰剥。

7、查詢中排序的字段筷频,排序字段若通過索引去訪問將大大提高排序速度蚌成。

8、查詢中統(tǒng)計或分組字段凛捏。

7)那些情況下不需要建立索引:

1担忧、表記錄太少。

2坯癣、經常增刪改的表瓶盛。

原因:索引雖然提高了查詢的速度,同事缺會降低更新表的速度示罗,如對表進行INSERT惩猫、UPDATE、DELETE蚜点、MySQL不僅要保存轧房、修改、刪除數(shù)據(jù)绍绘,還要保存奶镶、更新、刪除索引文件脯倒。

3实辑、對數(shù)據(jù)重復且分布平均的表字段不應該建立索引,應該只為最經常查詢和最近常排序的數(shù)據(jù)列建立索引藻丢。
\color{red}{(注:如果某個數(shù)據(jù)列包含包含許多重復的內容剪撬,為他建立索引就沒有太大的效果了。)}

8)覆蓋索引:

理解方式一(推薦):

就是select的數(shù)據(jù)列只用從索引中就能獲取的悠反,不必讀取數(shù)據(jù)行残黑,MySql可以利用索引返回select列表中的字段,而不必更具索引在此讀取數(shù)據(jù)文件斋否。換句話說梨水,查詢列要被所建的索引覆蓋。

理解方式二:

索引是高效找到行的一個方法茵臭,但是數(shù)據(jù)庫一般也能使用索引找到一個列的數(shù)據(jù)疫诽,因此他不必讀取整個行,畢竟索引葉子節(jié)點儲存了他們索引的數(shù)據(jù),當能通過讀取索引就能獲取想要的數(shù) 據(jù)奇徒,那就不需要在讀取行了雏亚,一個索引包含了(或覆蓋了)滿足查詢結果的數(shù)據(jù),就叫覆蓋索引摩钙。

注意:

如果要數(shù)用覆蓋索引罢低,一定要注意select列表中只取出需要的列,不可select *胖笛。

因為如果要將所用字段一起做索引网持,會導致索引文件過大,查詢的性能下降长踊。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末功舀,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子之斯,更是在濱河造成了極大的恐慌日杈,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件佑刷,死亡現(xiàn)場離奇詭異,居然都是意外死亡酿炸,警方通過查閱死者的電腦和手機瘫絮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來填硕,“玉大人麦萤,你說我怎么就攤上這事”饷校” “怎么了壮莹?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長姻檀。 經常有香客問我命满,道長,這世上最難降的妖魔是什么绣版? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任胶台,我火速辦了婚禮,結果婚禮上杂抽,老公的妹妹穿的比我還像新娘诈唬。我一直安慰自己,他們只是感情好缩麸,可當我...
    茶點故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布铸磅。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪阅仔。 梳的紋絲不亂的頭發(fā)上济竹,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天,我揣著相機與錄音霎槐,去河邊找鬼送浊。 笑死,一個胖子當著我的面吹牛丘跌,可吹牛的內容都是我干的袭景。 我是一名探鬼主播,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼闭树,長吁一口氣:“原來是場噩夢啊……” “哼耸棒!你這毒婦竟也來了?” 一聲冷哼從身側響起报辱,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤与殃,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后碍现,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體幅疼,經...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年昼接,在試婚紗的時候發(fā)現(xiàn)自己被綠了爽篷。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出睹晒,到底是詐尸還是另有隱情,我是刑警寧澤泪喊,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站髓涯,受9級特大地震影響袒啼,放射性物質發(fā)生泄漏。R本人自食惡果不足惜复凳,卻給世界環(huán)境...
    茶點故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一瘤泪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧育八,春花似錦对途、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惶洲。三九已至,卻和暖如春膳犹,著一層夾襖步出監(jiān)牢的瞬間恬吕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工须床, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留铐料,地道東北人。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓豺旬,卻偏偏與公主長得像钠惩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子族阅,可洞房花燭夜當晚...
    茶點故事閱讀 44,974評論 2 355

推薦閱讀更多精彩內容