黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 職業指南 大廠考核重點:mysql索引面試題

大廠考核重點:mysql索引面試題

更新時間:2022-12-30 15:09:18 來源:動力節點 瀏覽1350次

很多同學面對Mysql索引相關的面試題都是死記硬背的,這肯定是不行的,也不容易記住,所以大家還是要循循漸進,從理解開始,慢慢掌握,當然對于想要準備面試題的同學,這幾個問題是需要記住并理解的:

mysql索引面試題

為什么要建立索引?

當在非常大的表中進行查詢,如果數據庫進行全表遍歷的話那么速度是會非常慢的,而我們的索引則可以建立一個b+樹的結構,可以自上而下的去進行查詢(有點像二分查找),可以在一定程度避免走全表查詢,這樣查詢的速度是非常快的;

①一般情況下掃描索引的速度是遠遠大于掃描全表的速度的;

②索引是天然有序的,具備B+樹的快速檢索(類似二分查找)

③索引天然聚合(存儲的數據是去重了的),在一些操作(分組,排序等)中不會再產生中間表;

哪些情況適合建立索引?

對于查詢占主要的應用來說,索引顯得尤為重要。很多時候性能問題很簡單的就是因為我們忘了添加索引而造成的,或者說沒有添加更為有效的索引導致。如果不加索引的話,那么查找任何哪怕只是一條特定的數據都會進行一次全表掃描,如果一張表的數據量很大而符合條件的結果又很少,那么不加索引會引起致命的性能下降。但是也不是什么情況都非得建索引不可,比如性別可能就只有兩個值,建索引不僅沒什么優勢,還會影響到更新速度,這被稱為過度索引。

那么哪些情況下適合建索引?

1. 頻繁作為where條件語句查詢的字段

這是因為在頻繁查詢的字段列創建索引可以避免查詢數據的時候走全表掃描,這樣查詢的速度就會大大增加;

2. 關聯字段需要建立索引

關聯的字段一般都是通過主鍵來進行兩張表的關聯,主鍵大部分情況下都是主鍵;如果關聯的兩個主鍵都沒有索引,那么我們一般優先考慮在被驅動表中的字段建立索引,因為在外連接的查詢中被驅動表是需要被多次重復掃描的,那么讓它走索引查詢是會快很多的,可以避免更多次數的全表掃描;

3. 排序字段可以建立索引

這是因為b+樹結構的索引是天然有序的!

4.分組字段可以建立索引,因為分組的前提是排序

5.統計字段可以建立索引,例如count(),max()

這是因為索引是天然聚合的,就是存放在b+樹的數據是已經去重的數據了,存儲的數據還是比較緊湊的,那么通過B+樹的雙向指針可以更快的找到要統計的數據,而且在加了索引的列的統計的時候MySQL是不會產生中間表來專門去重了,可以減少不必要的性能開銷;(在沒有索引的列的統計,分組 的SQL語句中,MySQL都是會創建臨時表來存儲數據的)

哪些情況下不適合建索引?

1.頻繁更新的字段不適合建立索引 (因為數據比較大的表的索引的創建是非常耗時的,而且如果一個字段被頻繁更新那么我們還需要頻繁的維護這個樹的結構,這個開銷是非常大的)

2.參與列計算的列不適合建索引,因為計算后的列的值最后不一定是有序的,不有序那么就會導致索引會失效

3.表數據可以確定比較少的不需要建索引

4.數據重復且分布比較均勻的的字段不適合建索引,因為說不定你對這種索引字段的查詢的速度還沒有全表掃描快,例如性別,真假值;

5.where條件中用不到的字段不適合建立索引,因為索引是可以幫助我們在查詢的時候大大的提高查詢效率,但是在增加,刪除操作確實異常消耗性能的,因為需要不斷的維護B+樹的結構(有序你就需要維護),你查詢的時候都不需要使用到這個字段了,那還建立這個字段的索引列干啥?等著吃你系統的性能嘛?

為什么索引是使用B+樹?(重點)

①因為b+樹是把數據都存放在葉子節點中的(在innodb存儲引擎中一個b+樹的節點是 一頁(16k)),那么在固定大小的容量中 B+樹的非葉子節點中就可以存放更多的索引列數據,也就意味著B+樹的非葉子節點存儲的數據的范圍就會更大,那么樹的層次就會更少,IO次數也就會更少;

②b+樹的葉子節點維護了一個雙向鏈表,它更有利于范圍查詢

③b+樹中的葉子節點和非葉子節點的數據都是分開存儲的,分別存放在葉子節點段和非葉子節點段,那么進行全表掃描的時候,就可以不用再掃描非葉子節點的數據了,并且這是一個順序讀取數據的過程(順序讀比隨機讀的速度要快很多很多),掃描的速度也會大大提高;

以上就是“大廠考核重點:mysql索引面試題”,你能回答上來嗎?如果想要了解更多的Java面試題相關內容,可以關注動力節點Java官網。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产成人精品免费视频动漫 | 亚洲成a人片77777在线播放 | free性videos西欧极品 | 蝌蚪网在线观看 | 99精品视频免费 | 一级片a| 亚洲大胆美女人体一二三区 | 欧美成人综合 | 午夜a一级毛片一.成 | 色人阁导航 | 欧美日韩动漫 | 狠狠色综合久久久久尤物 | 日皮视频在线免费观看 | 日韩精品中文字幕久久 | 欧美日韩综合高清一区二区 | 成年美女xx网站高清视频 | 欧美二区在线观看 | 国产综合色在线视频区色吧图片 | 香蕉一级视频 | 夜夜添夜夜添夜夜摸夜夜摸 | 欧美城天堂网 | 天天尻 | 在线视频三区 | 欧美一级黄色带 | 色综合色综合色综合 | 亚洲一区二区影视 | 一级毛片免费毛片毛片 | 欧美日韩免费看 | 成人一级黄色大片 | 日日操日日摸 | 国产99视频精品免费视频7 | 在线亚洲精品防屏蔽 | 理论片一级 | freevideos性欧美 | 欧美日韩一区二区三区四区 | 欧美三级不卡在线观看视频 | 欧美一线天 | 在线视频 亚洲 | 欧美不卡网 | 大胸美女被强吻胸动态图片 | 天天弄天天模 |