MySQL 面試,必須掌握的 8 大核心點

上週末和在北京的哥們國仔涮火鍋,席間聊起了最近面試的經歷。
java

他說想換工做的緣由很簡單,就是要漲工資,原來的公司呆了兩年多,薪資浮動不超過 500 元。而身邊跳槽的那些同事,薪資都已是本身的 2 倍了。程序員

在準備面試的過程當中,國仔坦言道還蠻辛酸的。面試

白天要上班敲代碼,晚上甚至會加班,致使蒐集面試題目的時間都沒有,並且網上好多都是千篇一概的搬來搬去的文章,感受面試官都不屑於問到相似的問題。數據庫

工做後整我的都有點懶了,知道怎麼用代碼實現卻再也不關注爲何要這麼使用。可是面試時候好像更關注 why 多於 how。有些問題甚至工做時都沒遇到過。編程

說到這兒,國仔已經吃完了一盤羊肉,鏡片被熱氣蒙上了一層薄薄的霧。國仔取下眼鏡一邊用衣角擦拭,一邊繼續唸叨:後端

我以爲得到高薪的關鍵:就是高效的準備面試。若是當初有我的能給我一份總結好的面試錦囊,我就不至於慌成那樣。緩存

對於程序員來講,面試內容通常分爲兩個部分:編程面試題部分 + 數據庫面試題部分性能優化

據不徹底調查,做爲數據庫中的主流選擇 MySQL 的薪資待遇正在逐年增長,並且彷佛不只僅是程序員在學,就連不少產品經理和運營人也開始學習 MySQL 去分析數據。微信

△圖來自獵聘網架構

爲了讓你們能避開國仔面試時的苦惱,咱們特地邀請到兩位有着 10 年工做經驗的技術老兵,前先後後大概花了三個多月的時間,改了 6 個版本,最終造成了這套 MySQL 面試題,來幫助準備面試的朋友們。

內容介紹

對於技術面試來講,考察的核心包含如下兩個特色:
  1. 考察的知識點廣,由於不一樣的公司和不一樣的面試官技能知識結構是不一樣的,因此所關注的問題和麪試內容也是不一樣的,因此具有面試知識點廣的特色;
  2. 考察的知識點較深刻,以阿里巴巴爲例,這些大廠的面試都是相似的,一般從一個大的面試點切入,而後層層深刻,直到問到你不會爲止,好比,你瞭解哪些數據庫引擎?這個數據庫引擎的特色是什麼?這個數據庫引擎是如何存儲數據的?爲何要採用這種存儲方式?等等。

因此針對以上兩個問題,做者結合本身 10 餘年的工做和麪試的經驗,通過討論和修改,最終制定了八大模塊,彙總並介紹 MySQL 中的典型面試問題,它包含的內容以下。

  • 第一部分: 通用模塊。 此部分對 MySQL 總體概念、執行流程、數據庫引擎、查詢緩存、表空間、回表查詢、數據類型間的區別、內存表、臨時表、刪除表的 n 種方式、枚舉、視圖、數據恢復等相關知識點對應的面試題進行解答。
  • 第二部分: 索引模塊。 索引的好壞直接影響數據庫的性能,因此索引的面試題也是面試中必問的問題,此部分爲索引對應的面試題合集。
  • 第三部分:事務模塊。 事務決定了程序的穩定性,在 MySQL 中的地位也是數一數二,也是面試中必問的面試題,此部分爲事務對應的面試題合集。
  • 第四部分:鎖。 鎖包括:全局鎖、表鎖、行鎖、死鎖、樂觀鎖、悲觀鎖等,不一樣的數據庫引擎支持的鎖支持粒度也是不一樣的,此部分的面試題,讓你完全搞定鎖相關的面試題。
  • 第五部分:日誌。 日誌看似不起眼,倒是 MySQL 主備同步和容災恢復以及問題排除的關鍵,固然也是面試中必問的問題,這部分會對不一樣的數據庫引擎中的重點日誌,進行詳細的介紹。
  • 第六部分:MySQL 操做命令和內置函數。 MySQL 的操做命令,對於程序員或者 DBA 來講也是必須具有的一項技能,好比,用戶和權限的建立、數據庫相關信息的查詢等,都離不開對 MySQL 命令行的掌握。對內置函數的掌握程度,表明了你對 MySQL 的掌握程度,善用 MySQL 提供的內置函數,會讓你有事半功倍的效果,內置函數也是筆試中必考的面試題。
  • 第七部分:性能優化和分佈式。 性能優化和分佈式是面試中決定你高度的關鍵指標,其中性能優化包括了慢查詢的分析和處理,對分佈式的掌握體現了你的技術深度。
  • 第八部分:開放性問題。 不少大公司最後也會問一下沒有標準答案的開放性問題,以考察面試者的技術能力邊界和對待問題的分析思路,這部分助你更平穩的得到 offer。
對應的知識圖譜以下:

做者介紹

老王:資深面試官/阿里雲社區認證專家

十餘年編程從業經驗,現上市公司技術研發經理,曾就任於 360,有着豐富的大型系統設計、開發和調優的經驗,在不斷探索和學習的過程當中,積累了寶貴的編程與面試經驗。

張建:十餘年編程從業經驗/現任上市公司項目經理

曾就任新華保險通信事業部、汽車之家。有着豐富的工業製造系統、呼叫中心、互聯網系統設計、開發和調優經驗。

曾主導設計並參與了汽車之家二手車BU單體應用微服務化改造,有着豐富的微服務架構經驗。

掃碼查看《程序員的 MySQL 面試金典》

你能學到什麼?

  • 紮實的 MySQL 基礎:MySQL 內部執行流程、查詢緩存、數據庫引擎、表空間、表收縮、回表查詢、刪除數據恢復、視圖、內存表和臨時表的區別等。
  • 索引、事務、內置函數等模塊的面試題彙總與解析。
  • 全局鎖、表鎖、行鎖、死鎖、樂觀鎖、悲觀鎖等面試題彙總與解析。
  • MySQL 中主從部署原理和容災恢復的面試題和知識點解析。
  • MySQL 慢查詢處理以及高性能方面的面試題彙總與解析。
  • MySQL 中開放性問題的彙總與解析。

適宜人羣

  • 準備跳槽的後端工程師(初、中、高級)
  • 自學編程準備找工做的準程序員
  • 在校學生(大學生/研究生方向)


本文分享自微信公衆號 - Java中文社羣(javacn666)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索