程序員的 MySQL 面試金典

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

他說想換工作的原因很簡單,就是要漲工資,原來的公司呆了兩年多,薪資浮動不超過 500 元。而身邊跳槽的那些同事,薪資都已經是自己的 2 倍了。

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

白天要上班敲代碼,晚上甚至會加班,導致蒐集面試題目的時間都沒有,而且網上好多都是千篇一律的搬來搬去的文章,感覺面試官都不屑於問到類似的問題。

工作後整個人都有點懶了,知道怎麼用代碼實現卻不再關注爲什麼要這麼使用。但是面試時候好像更關注 why 多於 how。有些問題甚至工作時都沒遇到過。

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

我覺得獲得高薪的關鍵:就是高效的準備面試。如果當初有個人能給我一份總結好的面試錦囊,我就不至於慌成那樣。

對於程序員來說,面試內容一般分爲兩個部分:編程面試題部分 + 數據庫面試題部分。

據不完全調查,作爲數據庫中的主流選擇 MySQL 的薪資待遇正在逐年增加,而且似乎不僅僅是程序員在學,就連很多產品經理和運營人也開始學習 MySQL 去分析數據。

圖來自獵聘網

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

內容介紹

對於技術面試來說,考察的核心包含以下兩個特點:

  1. 考察的知識點廣,因爲不同的公司和不同的面試官技能知識結構是不同的,所以所關注的問題和麪試內容也是不同的,所以具備面試知識點廣的特點;
  2. 考察的知識點較深入,以阿里巴巴爲例,這些大廠的面試都是類似的,通常從一個大的面試點切入,然後層層深入,知道問到你不會爲止,比如,你瞭解哪些數據庫引擎?這個數據庫引擎的特點是什麼?這個數據庫引擎是如何存儲數據的?爲什麼要採用這種存儲方式?等。

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

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

對應的知識圖譜如下:
image.png

作者介紹

老王:資深面試官/阿里雲社區認證專家
十餘年編程從業經驗,現上市公司技術研發經理,曾就職於 360,有着豐富的大型系統設計、開發和調優的經驗,在不斷探索和學習的過程中,積累了寶貴的編程與面試經驗。

張建:十餘年編程從業經驗/現任上市公司項目經理
曾就職新華保險通訊事業部、汽車之家。有着豐富的工業製造系統、呼叫中心、互聯網系統設計、開發和調優經驗。曾主導設計並參與了汽車之家二手車BU單體應用微服務化改造,有着豐富的微服務架構經驗。

你能學到什麼?

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

適宜人羣

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

掃碼查收 MySQL 面試思維腦圖👇
在這裏插入圖片描述

點擊鏈接也可以速速獲取👉《程序員的 MySQL 面試金典》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章