開發人員必備的9大MySQL索引和查詢優化一般來說,程序員的面試內容分為兩部分,一部分與編程相關,另一部分則與數據庫相關。而作為數據庫中的主流,MySQL更是涉及面試中的諸多高頻考點。對於後端人員來說,不需要像專業的DBA那樣精通MySQL,但也需要掌握相關的基本內容。小編在此總結了MySQL面試中常見7大問題的50道經典面試題,以期幫助大家順利通過面試。
首先,看看下面的MySQL知識樹。從圖中可以看出,MySQL可以從開發、優化、維護3方面來展開學習。其中,索引、鎖、事務、優化等問題更是反覆出現,是面試的重中之重。本篇文章就將聚焦於存儲引擎、數據類型、索引、鎖、事務、表結構、優化等常見的7大問題。下面這份導圖需要可以私信我【資料】獲取源文件,配合下面的面試解析可以學習!
MySQL面試專題—7大問題
一、存儲引擎相關
- 你知道哪些MySQL存儲引擎?
- 常見的存儲引擎都適用於哪些場景?
- InnoDB和MyISAM的區別有哪些?
- InnoDB和MyISAM,select count(*)哪個更快,為什麼?
- MyISAM Static和MyISAM Dynamic有什麼區別?
二、數據類型相關
- char和varchar的區別是什麼?
- varchar(10)和int(10)分別有什麼含義?
- MySQL的binlog有幾種錄入格式,它們之間有什麼區別?
- 如何在Unix和MySQL時間戳之間進行轉換?
怎樣才能找出最後一次插入時分配了哪個自動增量? - 列設置為AUTO INCREMENT時,如果在表中達到最大值,會發生什麼情況?
- MySQL中,如果一個表有一列定義為TIMESTAMP,則會發生什麼?
- 如果要存儲用戶的密碼散列,應該使用什麼字段進行存儲?
三、索引相關
- 什麼是索引?
- 索引有什麼優缺點?
- 索引的數據結構和什麼有關?
- MySQL主要的索引類型有哪些?
- 在建立索引的時候,需要考慮哪些因素?
- Hash索引和B+樹索引有什麼區別?
- 非聚簇索引一定會回表查詢嗎?
- 什麼是聯合索引?為什麼需要注意聯合索引中的順序?
- 怎樣知道語句運行很慢的原因?
- 為何會發生針對該列創建了索引但是在查詢的時候並沒有使用的問題?
四、鎖相關
- 你對MySQL鎖是怎麼理解的?
- 加鎖有什麼好處?
- Mysql中有哪幾種鎖?
- 什麼是死鎖?鎖等待?通過數據庫哪些表可以監控?
- 28.MySQL中InnoDB引擎的行鎖是如何實現的?
- 29.你知道哪些優化鎖的方法?
五、事務相關
- 什麼是事務?
- ACID是什麼?
- 事務是如何通過日誌來實現的?
- 同時有多個事務在進行會怎麼樣?
- MySQL的事務隔離級別有哪些?
- InnoDB使用的是哪種隔離級別?
- REPEATABLE READ隔離級別下 MVCC 如何工作?
- InnoDB 如何開啟手動提交事務?
- 在 InnoDB 中設置了 autocommit=0,添加一條信息之後沒有手動執行提交操作,請問這條信息可以被查到嗎?
六、表結構設計相關
- 為什麼要儘量設定一個主鍵?
- 主鍵使用自增ID還是UUID?
- 字段為什麼要求定義為not null?
七、優化相關
- explain出來的各種item的意義是什麼?
- profile的意義以及使用場景有哪些?
- 統計過慢查詢嗎?對慢查詢都怎麼優化過?
- 說一說你能想到的sql語句優化,至少五種
- 說一說你能想到的表結構優化,至少五種
八、其他
- 數據三大範式是什麼?
- 超大分頁如何處理?
- MySQL數據庫cpu飆升到500%的話,該如何處理?
- 什麼是存儲過程?
面試題答案
1.你知道哪些MySQL存儲引擎?
2.常見的存儲引擎都適用於哪些場景?
使用哪一種引擎需要靈活選擇,合適的存儲引擎,能夠提高整個數據庫的性能。不同的存儲引擎都有各自的特點,以適應不同的需求,如下表所示:
由於篇幅限制,太長看下去會很乏味,也會影響閱讀體驗,下面展現將以圖片形式展示。獲取原文件以及更多資源請關注轉發分享後,後臺私信回覆【資料】獲取資料免費領取方式!
之前有分享過MySQL性能優化和架構設計解析文檔,配合上的MySQL面試解析文檔一起免費分享,以上這些資料轉發此文後私信回覆我【資料】即可諮詢上面資料及清晰Java進階路線圖的免費領取方式!
這份文檔共分3個部分
- 基礎篇介紹了MySQL軟件的基礎知識、架構組成、存儲引擎、安全管理及基本的備份恢復知識。
- 性能優化篇從影響 MySQL 數據庫應用系統性能的因素開始,針對性地對各個影響因素進行調優分析
- 架構設計篇則主要以設計一個高可用可擴展的分佈式企業級數據庫集群環境為目標,分析介紹了通過MySQL 實現這一目標的多種架構方式。
同時配合這位大咖的MySQL學習視頻,學起來會事半功倍,接著往下看吧。
更多學習視頻資料及文檔分享
以上這些資料轉發此文後私信回覆我【資料】即可諮詢上面資料及清晰Java進階路線圖的免費領取方式!
閱讀更多 JavaSpring高級進階 的文章