大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

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

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

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

很多同學面對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官網。

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 精品国产品欧美日产在线 | 色花堂国产精品第二页 | 久久精品99久久香蕉国产色戒 | 国产成年网站v片在线观看 国产成人 免费观看 | 欧美一二三 | 中文精品视频一区二区在线观看 | 91精品视频在线免费观看 | 成人5252色| 欧美xo影院 | 91在线精品 | 日韩一区二区三 | 日韩久久精品视频 | 好吊顶色| 日韩欧美一中字暮 | 91手机看片国产福利精品 | 久久国内精品自在自线400部o | 国产主播在线播放 | 天天夜天天干 | 国产精品永久免费 | 欧美操操 | 亚洲天天在线日亚洲洲精 | 久久久夜间小视频 | 欧美一级欧美一级毛片 | 欧美一级毛片特黄黄 | 六月丁香深爱六月综合激情 | 色噜噜狠狠狠狠色综合久一 | 久久厕所精品国产精品亚洲 | 国产福利在线观看永久免费 | 亚洲va欧美va国产va天堂 | 在线播放国产一区二区三区 | 80s成年女人毛片免费观看观看 | 日日夜夜欧美 | 99精品久久久久久久婷婷 | 国产深夜福利视频在线观看 | 99爱在线精品视频免费观看9 | 日本欧美在线播放 | 毛片网站免费在线观看 | 亚洲欧美日韩另类 | 久久婷婷婷| 五月婷婷在线观看视频 | 中文字幕精品视频在线观看 |