都是「MySQL在搞鬼」差點倒在阿里三面,後面真是虛心一場

2020-10-25 14:01:15

前言

在找工作的過程中,對於 MySQL 技術知識的掌握已經成為必須的技能。面試常常就會被問到MySQL相關知識,而這次我就差點倒在了阿里3面,面試官連問我以下幾個MySQL的問題,然後就卡殼了.

都是“MySQL在搞鬼”差點倒在阿里三面,後面真是虛心一場

 

關於學習 MySQL的思維腦圖(Xmind)

都是“MySQL在搞鬼”差點倒在阿里三面,後面真是虛心一場

 

近幾年,開源資料庫逐漸流行起來。由於具有免費使用、設定簡單、穩定性好、效能優良等 優點,開源資料庫在中低端應用上佔據了很大的市場份額,而 MySQL 正是開源資料庫中的 傑出代表。

關於MySQL的內容整理,包括了面試題、學習筆記、使用檔案以及Xmind思維圖幾個部分,需要高清完整版的請轉發+關注,然後私信回覆「MySQL」獲得免費領取方式

這是一份BATJ架構師實戰整理的深入淺出MySQL檔案,共分為4個部分31章。

其中4個部分分別為基礎篇、開發篇、優化篇、管理維護篇。

所分的31章具體目錄如下:

 

基礎篇

  1. 第 1 章 MySQL 的安裝與設定
  2. 第 2 章 SQL 基礎
  3. 第 3 章 MySQL 支援的資料型別
  4. 第 4 章 MySQL 中的運運算元
  5. 第 5 章 常用函數
  6. 第 6 章 圖形化工具的使用

都是“MySQL在搞鬼”差點倒在阿里三面,後面真是虛心一場

部分知識節點

開發篇

  1. 第 7 章 表型別(儲存引擎)的選擇
  2. 第 8 章 選擇合適的資料型別
  3. 第 9 章 字元集
  4. 第 10 章 索引的設計和使用
  5. 第 11 章 檢視
  6. 第 12 章 儲存過程和函數
  7. 第 13 章 觸發器
  8. 第 14 章 事務控制和鎖定語句
  9. 第 15 章 SQL 中的安全問題
  10. 第 16 章 SQL Mode 及相關問題

都是“MySQL在搞鬼”差點倒在阿里三面,後面真是虛心一場

部分知識節點

優化篇

  1. 第 17 章 常用 SQL 技巧和常見問題
  2. 第 18 章 SQL 優化
  3. 第 19 章 優化資料庫物件
  4. 第 20 章 鎖問題
  5. 第 21 章 優化 MySQL Server
  6. 第 22 章 磁碟 I/O 問題
  7. 第 23 章 應用優化

都是“MySQL在搞鬼”差點倒在阿里三面,後面真是虛心一場

部分知識節點

管理維護篇

  1. 第 24 章 MySQL 高階安裝和升級
  2. 第 25 章 MySQL 中的常用工具
  3. 第 26 章 MySQL 紀錄檔
  4. 第 27 章 備份與恢復
  5. 第 28 章 MySQL 許可權與安全
  6. 第 29 章 MySQL 複製
  7. 第 30 章 MySQL Cluster
  8. 第 31 章 MySQL 常見問題和應用技巧

都是“MySQL在搞鬼”差點倒在阿里三面,後面真是虛心一場

部分知識節點

都是“MySQL在搞鬼”差點倒在阿里三面,後面真是虛心一場

部分內容截圖

關於MySQL,面試官會問哪些問題?

  • 第一個:MySQ效能優化最佳實踐21個(有具體的解釋)你知道哪些?
  1. 為查詢快取優化你的查詢
  2. EXPLAIN你的SELECT查詢
  3. 當只要一行資料時使用LIMIT 1
  4. 為搜尋欄位建索引
  5. 在Join表的時候使用相當型別的例,並將其索引
  6. 千萬不要 ORDER BY RAND()
  7. 避免 SELECT *
  8. 永遠為每張表設定一個 ID
  9. 使用 ENUM 而不是 VARCHAR
  10. 從 PROCEDURE ANALYSE() 取得建議
  11. 儘可能的使用 NOT NULL
  12. Prepared Statements
  13. 無緩衝的查詢
  14. 把 IP 地址存成 UNSIGNED INT
  15. 固定長度的表會更快
  16. 垂直分割
  17. 拆分大的 DELETE 或 INSERT 語句
  18. 越小的列會越快
  19. 選擇正確的儲存引擎
  20. 使用一個物件關係對映器(Object Relational Mapper)
  21. 小心「永久連結」

都是“MySQL在搞鬼”差點倒在阿里三面,後面真是虛心一場

 

  • 第二個:來看下MySQL的高頻20問(附帶詳細解答,整理成冊)
  1. 事務四大特性(ACID)原子性、一致性、隔離性、永續性?
  2. 事務的並行?事務隔離級別,每個級別會引發什麼問題,MySQL預設是哪個級別?
  3. MySQL常見的三種儲存引擎(InnoDB、MyISAM、MEMORY)的區別?
  4. MySQL的MyISAM與InnoDB兩種儲存引擎在,事務、鎖級別,各自的適用場景?
  5. 查詢語句不同元素(where、jion、limit、group by、having等等)執行先後順序?
  6. 什麼是臨時表,臨時表什麼時候刪除?
  7. MySQL B+Tree索引和Hash索引的區別?
  8. sql查詢語句確定建立哪種型別的索引?如何優化查詢?
  9. 聚集索引和非聚集索引區別?
  10. 有哪些鎖(樂觀鎖悲觀鎖),select 時怎麼加排它鎖?
  11. 非關係型資料庫和關係型資料庫區別,優勢比較?
  12. 資料庫三正規化,根據某個場景設計資料表?
  13. 資料庫的讀寫分離、主從複製,主從複製分析的 7 個問題?
  14. 使用explain優化sql和索引?
  15. MySQL慢查詢怎麼解決?
  16. 什麼是 內連線、外連線、交叉連線、笛卡爾積等?
  17. mysql都有什麼鎖,死鎖判定原理和具體場景,死鎖怎麼解決?
  18. varchar和char的使用場景?
  19. mysql 高並行環境解決方案?
  20. 資料庫崩潰時事務的恢復機制(REDO紀錄檔和UNDO紀錄檔)

都是“MySQL在搞鬼”差點倒在阿里三面,後面真是虛心一場

 

第三個:MySQL 面試題(高階進階部分)

  • 請解釋關係型資料庫概念及主要特點?
  • 請說出關係型資料庫的典型產品、特點及應用場景?
  • 請解釋非關係型資料庫概念及主要特點?
  • 請說出非關係型資料庫的典型產品、特點及應用場景?
  • 請詳細描述 SQL 語句分類及對應代表性關鍵字。
  • 請詳細描述 char(4)和 varchar(4)的差別。
  • 如何授權 oldboy 使用者從 172.16.1.0/24 存取資料庫。
  • 什麼是 MySQL 多範例,如何設定 MySQL 多範例?
  • 如何加強 MySQL 安全,請給出可行的具體措施?
  • delete 和 truncate 刪除資料的區別?
  • MySQL Sleep 執行緒過多如何解決?
  • sort_buffer_size 引數作用?如何線上修改生效?
  • 如何線上正確清理 MySQL binlog?
  • Binlog 工作模式有哪些?各什麼特點,企業如何選擇?
  • 誤操作執行了一個 drop 庫 SQL 語句,如何完整恢復?
  • mysqldump 備份使用了-A -B 引數,如何實現恢復單表?
  • 詳述 MySQL 主從複製原理及設定主從的完整步驟。
  • 如何開啟從庫的 binlog 功能?
  • MySQL 如何實現雙向互為主從複製,並說明應用場景?
  • MySQL 如何實現級聯同步,並說明應用場景?
  • MySQL 主從複製故障如何解決?
  • 如何監控主從複製是否故障?
  • MySQL 資料庫如何實現讀寫分離?
  • 生產一主多從從庫宕機,如何手工恢復?

都是“MySQL在搞鬼”差點倒在阿里三面,後面真是虛心一場

 

目前國內 MySQL需求旺盛,各大知名企業高薪招聘技術能力強的 MySQL 開發人員和管理人員。

總而言之,面試官問來問去,問的那些MySQL知識點也就這麼多吧,許是我複習的不夠到位,知識點掌握不夠熟練,所以面試才會卡殼。學習是自己的事,作為開發人員,MySQL是必須要掌握的,如果擁有大廠夢,基礎可不能太差,如果你對MySQL還有很多不解問題,將這些MySQL面試知識解析以及我整理的一些學習筆記分享出來給大家參考學習,