大战熟女丰满人妻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官網。

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 一级a毛片免费观看久久精品 | 天天射天天干天天色 | 日日操天天爽 | 91亚洲精品久久91 | 国产精品久久久久久久久免费观看 | 亚洲成人在线视频 | 午夜在线视频一区二区三区 | 日产精品一区二区 | 一级毛片毛片毛片毛毛片 | 国产日韩欧美中文 | h片免费网站 | 国产精品素人福利 | 一级毛片高清大全免费观看 | 久一视频在线观看 | 久久亚洲成人 | 色综合久久中文字幕 | 国产深夜福利视频观看 | 国产欧美精品国产国产专区 | 欧美成人免费xxx大片 | 综合精品在线 | 久久不射视频 | 天天拍拍天天爽免费视频 | 播放一级片 | 日本高清视频一区二区 | 亚洲视频欧洲视频 | 欧美一级毛片特黄黄 | 亚洲综合激情九月婷婷 | 婷婷综合五月 | 久久中文字幕一区二区三区 | 亚洲 中文 欧美 日韩 在线人 | 日韩中文字幕网 | 日本高清视频一区二区三区 | 国产美女流白浆的免费视 | 欧美一区二区三区不卡片 | 久久精品香蕉视频 | 欧美国产精品 | 日本不卡在线播放 | 九九热精品在线观看 | 国产亚洲视频在线观看 | 亚洲欧美国产毛片在线 | 另类尿喷潮videofree |