前言
在找工作的過程中,對於 MySQL 技術知識的掌握已經成為必須的技能。面試常常就會被問到MySQL相關知識,而這次我就差點倒在了阿里3面,面試官連問我以下幾個MySQL的問題,然後就卡殼了.
關於學習 MySQL的思維腦圖(Xmind)
近幾年,開源資料庫逐漸流行起來。由於具有免費使用、設定簡單、穩定性好、效能優良等 優點,開源資料庫在中低端應用上佔據了很大的市場份額,而 MySQL 正是開源資料庫中的 傑出代表。
關於MySQL的內容整理,包括了面試題、學習筆記、使用檔案以及Xmind思維圖幾個部分,需要高清完整版的請轉發+關注,然後私信回覆「MySQL」獲得免費領取方式
這是一份BATJ架構師實戰整理的深入淺出MySQL檔案,共分為4個部分31章。
其中4個部分分別為基礎篇、開發篇、優化篇、管理維護篇。
所分的31章具體目錄如下:
基礎篇
- 第 1 章 MySQL 的安裝與設定
- 第 2 章 SQL 基礎
- 第 3 章 MySQL 支援的資料型別
- 第 4 章 MySQL 中的運運算元
- 第 5 章 常用函數
- 第 6 章 圖形化工具的使用
部分知識節點
開發篇
- 第 7 章 表型別(儲存引擎)的選擇
- 第 8 章 選擇合適的資料型別
- 第 9 章 字元集
- 第 10 章 索引的設計和使用
- 第 11 章 檢視
- 第 12 章 儲存過程和函數
- 第 13 章 觸發器
- 第 14 章 事務控制和鎖定語句
- 第 15 章 SQL 中的安全問題
- 第 16 章 SQL Mode 及相關問題
部分知識節點
優化篇
- 第 17 章 常用 SQL 技巧和常見問題
- 第 18 章 SQL 優化
- 第 19 章 優化資料庫物件
- 第 20 章 鎖問題
- 第 21 章 優化 MySQL Server
- 第 22 章 磁碟 I/O 問題
- 第 23 章 應用優化
部分知識節點
管理維護篇
- 第 24 章 MySQL 高階安裝和升級
- 第 25 章 MySQL 中的常用工具
- 第 26 章 MySQL 紀錄檔
- 第 27 章 備份與恢復
- 第 28 章 MySQL 許可權與安全
- 第 29 章 MySQL 複製
- 第 30 章 MySQL Cluster
- 第 31 章 MySQL 常見問題和應用技巧
部分知識節點
部分內容截圖
關於MySQL,面試官會問哪些問題?
- 第一個:MySQ效能優化最佳實踐21個(有具體的解釋)你知道哪些?
- 為查詢快取優化你的查詢
- EXPLAIN你的SELECT查詢
- 當只要一行資料時使用LIMIT 1
- 為搜尋欄位建索引
- 在Join表的時候使用相當型別的例,並將其索引
- 千萬不要 ORDER BY RAND()
- 避免 SELECT *
- 永遠為每張表設定一個 ID
- 使用 ENUM 而不是 VARCHAR
- 從 PROCEDURE ANALYSE() 取得建議
- 儘可能的使用 NOT NULL
- Prepared Statements
- 無緩衝的查詢
- 把 IP 地址存成 UNSIGNED INT
- 固定長度的表會更快
- 垂直分割
- 拆分大的 DELETE 或 INSERT 語句
- 越小的列會越快
- 選擇正確的儲存引擎
- 使用一個物件關係對映器(Object Relational Mapper)
- 小心「永久連結」
- 第二個:來看下MySQL的高頻20問(附帶詳細解答,整理成冊)
- 事務四大特性(ACID)原子性、一致性、隔離性、永續性?
- 事務的並行?事務隔離級別,每個級別會引發什麼問題,MySQL預設是哪個級別?
- MySQL常見的三種儲存引擎(InnoDB、MyISAM、MEMORY)的區別?
- MySQL的MyISAM與InnoDB兩種儲存引擎在,事務、鎖級別,各自的適用場景?
- 查詢語句不同元素(where、jion、limit、group by、having等等)執行先後順序?
- 什麼是臨時表,臨時表什麼時候刪除?
- MySQL B+Tree索引和Hash索引的區別?
- sql查詢語句確定建立哪種型別的索引?如何優化查詢?
- 聚集索引和非聚集索引區別?
- 有哪些鎖(樂觀鎖悲觀鎖),select 時怎麼加排它鎖?
- 非關係型資料庫和關係型資料庫區別,優勢比較?
- 資料庫三正規化,根據某個場景設計資料表?
- 資料庫的讀寫分離、主從複製,主從複製分析的 7 個問題?
- 使用explain優化sql和索引?
- MySQL慢查詢怎麼解決?
- 什麼是 內連線、外連線、交叉連線、笛卡爾積等?
- mysql都有什麼鎖,死鎖判定原理和具體場景,死鎖怎麼解決?
- varchar和char的使用場景?
- mysql 高並行環境解決方案?
- 資料庫崩潰時事務的恢復機制(REDO紀錄檔和UNDO紀錄檔)
第三個: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面試知識解析以及我整理的一些學習筆記分享出來給大家參考學習,