前言
在找工作的過程中,對於 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,面試官會問哪些問題?
- 為查詢緩存優化你的查詢
- 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)
- 小心“永久鏈接”
- 事務四大特性(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面試知識解析以及我整理的一些學習筆記分享出來給大家參考學習,
有需要這些學習筆記資料的朋友注意啦:轉發+私信 “MySQL”即可免費領取!!