MySQL SQL調(diào)優(yōu)系列索引知識(shí)學(xué)習(xí)筆記

      網(wǎng)友投稿 837 2022-05-28

      繼我的上篇博客:Oracle索引知識(shí)學(xué)習(xí)筆記,再記錄一篇MySQL的索引知識(shí)學(xué)習(xí)筆記,本博客是我在學(xué)習(xí)尚硅谷的學(xué)習(xí)教程后,做的筆記,當(dāng)然我不是為了所謂宣傳,僅僅是學(xué)習(xí)記錄的筆記。本來(lái)可以不分享出來(lái),不過(guò),分享出來(lái)的筆記不僅可以給網(wǎng)上的學(xué)習(xí)者參考學(xué)習(xí),同時(shí)寫(xiě)在csdn比較方便,可以支持圖片上傳,也方便自己以后查找復(fù)習(xí)

      文章目錄

      一、索引的概念

      二、索引分類

      三、索引用法

      四 、索引架構(gòu)簡(jiǎn)介

      五、索引適用的情況

      六、索引不適用的情況

      一、索引的概念

      MySQL官方給出的索引定義:索引(Index)是幫助MySQL高效獲取數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。所以說(shuō)索引就是排好序的快速查找數(shù)據(jù)結(jié)構(gòu)

      二、索引分類

      MySQL的索引可以分為幾種:

      單值索引:?jiǎn)沃邓饕褪侵话粋€(gè)列的索引

      MySQL SQL調(diào)優(yōu)系列之索引知識(shí)學(xué)習(xí)筆記

      唯一索引:唯一索引要求索引列的必須是唯一的,比如說(shuō)主鍵或者unique索引,但是還是允許空值

      復(fù)合索引:復(fù)合索引就是包含多個(gè)列組成的索引

      三、索引用法

      創(chuàng)建索引

      create [unique] index indexName on tableName(columnName(length));

      1

      比如給dept表創(chuàng)建索引idx_dept_id

      create index idx_dept_id on dept(id);

      1

      修改索引

      ps:修改索引也可以用于新增索引

      語(yǔ)法:

      alter tablename add [unique] index indexname on columnName(length);

      1

      刪除索引

      drop index indexname on tablename;

      1

      查看索引

      show index from tablename ;

      1

      如果要顯示換行可以加上\G,不過(guò)就不能加上分號(hào)

      show index from tablename \G

      1

      附錄:

      來(lái)自尚硅谷老師總結(jié)的新增索引的方法:

      # 添加一個(gè)主鍵,主鍵是唯一的,不能為Null alter table tablename add PRIMARY KEY(columnName); #創(chuàng)建唯一索引,要求索引唯一,不過(guò)允允許空值 alter table tablename add unique index indexname on(columnName); # 創(chuàng)建普通的索引,索引數(shù)據(jù)可以不唯一 alter table tablename add index indexname on(columnName); # 指定索引為FullText,用于全文索引 alter table tablename add FULLTEXT indexname on(columnName);

      1

      2

      3

      4

      5

      6

      7

      8

      四 、索引架構(gòu)簡(jiǎn)介

      MySQL的索引結(jié)構(gòu)可以分為:

      BTree索引

      Hash索引

      full-text全文索引

      R-Tree索引

      引用尚硅谷MySQL教程的圖,本博客只介紹BTree索引的

      從圖可以看出BTree索引的結(jié)構(gòu)其實(shí)就是一棵B+樹(shù),并不一定是二叉樹(shù),也有可能是一棵多叉樹(shù),MySQL也是分為段區(qū)塊這種結(jié)構(gòu)的,如圖,淺藍(lán)色部分就是一個(gè)磁盤(pán)塊,藍(lán)色部分表示數(shù)據(jù)項(xiàng),而黃色部分表示指針

      假如我要查找29這個(gè)值,就是遍歷下來(lái),分別查找磁盤(pán)塊1、磁盤(pán)塊3、磁盤(pán)塊8,根據(jù)指針查找下來(lái),速度非常塊,假如有幾百萬(wàn)數(shù)據(jù)的話,能走索引的情況,是非常快的,性能對(duì)比可想而知

      注意:只有葉子節(jié)點(diǎn)(最下面的節(jié)點(diǎn))是存儲(chǔ)要查找的數(shù)據(jù)的,非葉子節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)只是用于指針?biāo)饕臄?shù)據(jù)項(xiàng)而已

      五、索引適用的情況

      1、頻繁用于查詢的條件適合建立索引

      2、主鍵默認(rèn)要加上Primary索引

      3、和其它表有外鍵關(guān)系的列建立索引

      4、where條件后面的條件列可以建上索引

      5、用于排序order by的列可以加上索引

      6、用于分組group by的列可以加上索引

      注意:需要經(jīng)常修改的列不適合建立索引,因?yàn)楦聰?shù)據(jù)的同時(shí)也會(huì)重新構(gòu)建索引,比較耗性能;在高并發(fā)的情況,更傾向于建立組合索引,因?yàn)橐话銇?lái)說(shuō),查詢很少有一個(gè)條件,一般是多個(gè)條件,復(fù)合索引比較適合

      六、索引不適用的情況

      1、需要經(jīng)常增刪改的表

      2、表的記錄很少的情況,加了索引效果不明顯

      3、如果某個(gè)數(shù)據(jù)列包含很多重復(fù)的數(shù)據(jù),比如用戶信息表的性別這個(gè)列,一般只有兩種情況,所以加了索引,是沒(méi)有太大的實(shí)際效果的

      注意:索引應(yīng)該加在經(jīng)常查詢或者排序的列,數(shù)據(jù)重復(fù)而且分布很平均的情況,是不適合加索引的

      引用尚硅谷老師的歸納:

      MySQL SQL

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:Linux疑難雜癥解決方案100篇(十一)-常用Linux命令,助力工作更輕松便捷
      下一篇:【數(shù)據(jù)結(jié)構(gòu)與算法】之深入解析“掃雷游戲”的求解思路與算法示例
      相關(guān)文章
      亚洲av色福利天堂| 亚洲国产日韩在线观频| 在线观看亚洲成人| 亚洲国产精品碰碰| 在线观看亚洲免费视频| 久久亚洲中文字幕无码| 亚洲成a人片在线观看天堂无码| 亚洲 暴爽 AV人人爽日日碰| 最新国产成人亚洲精品影院| 亚洲国产成a人v在线观看| 亚洲国产成人久久精品app| 久久丫精品国产亚洲av不卡| 亚洲AV无码国产精品麻豆天美| 亚洲国产日韩女人aaaaaa毛片在线 | 亚洲日韩国产精品无码av| 久久久久亚洲Av片无码v| 亚洲国产精品无码一线岛国| 国产精品亚洲成在人线| 亚洲VA中文字幕不卡无码| 亚洲AV人人澡人人爽人人夜夜| 亚洲欧洲日韩不卡| 亚洲国产精品白丝在线观看 | 亚洲人成色7777在线观看不卡 | 国产成人va亚洲电影| 国产亚洲精彩视频| 亚洲国产精品一区二区第四页| 亚洲人成色7777在线观看不卡| 亚洲日韩国产精品第一页一区| 亚洲AV无码一区东京热| 久久久久亚洲av无码专区导航| 亚洲免费观看在线视频| 亚洲中文字幕无码久久2020| 亚洲最大福利视频网站| 亚洲日本精品一区二区| 亚洲精品中文字幕无乱码| 亚洲午夜在线一区| 亚洲中文字幕无码亚洲成A人片 | 亚洲av永久无码精品漫画| 亚洲午夜无码片在线观看影院猛 | 亚洲最大av无码网址| 亚洲国产精品一区第二页|