前言
作為一名編程人員,對MySQL一定不會陌生,尤其是互聯網行業,對MySQL的使用是比較多的。對於求職者來說,MySQL又是面試中一定會問到的重點,很多人擁有大廠夢,卻因為MySQL敗下陣來。實際上,MySQL並不難,今天這份最全的MySQL總結,助你向大廠“開炮”,面試不再被MySQL難倒。
MySQL 面試題集合總結
1.1 MySQL 面試題(基礎部分):
- drop、truncate、 delete區別
- 數據庫三范式是什么?
- union和union all有什么不同?
- char、varchar2、varchar有什么區別?
- 合並查詢有哪些?
- SQL語句執行順序
- null的含義
- MySQL、SqlServer、oracle寫出字符存儲、字符串轉時間
- update語句可以修改結果集中的數據嗎?
- B樹和B+樹的區別
- 你見過索引嗎? 建索引的原則
- 索引的類型, 如主鍵索引
- 查看SQL執行計划
- 有十萬條數據, 寫SQL語句查詢其中某字段較大值的幾條數據
- 子查詢與關聯查詢的區別
- MySQL InnoDB、Mysaim的特點?
- 樂觀鎖和悲觀鎖的區別??
- 行鎖和表鎖的區別?
- 數據庫隔離級別是什么?有什么作用?
- MySQL主備同步的基本原理。
- 如何優化數據庫性能(索引、分庫分表、批量操作、分頁算法、升級硬盤SSD、業務優化、主從部署)
- SQL什么情況下不會使用索引(不包含,不等於,函數)
- 一般在什么字段上建索引(過濾數據最多的字段)
- MySQL,B+索引實現,行鎖實現,SQL優化
- 如何解決高並發減庫存問題
- 數據庫事務的幾種粒度
1.2 MySQL 面試題(實戰部分):
- 數據庫三范式,根據秒殺場景設計數據表
- 數據庫的主從復制
- 死鎖怎么解決
- mysql並發情況下怎么解決(通過事務、隔離級別、鎖)
- 觸發器的作用?
- 什么是存儲過程?用什么來調用?
- 存儲過程的優缺點?
- 存儲過程與函數的區別
- 索引的作用?和它的優點缺點是什么?
- 什么樣的字段適合建索引
- 索引類型有哪些?
- 什么是事務?什么是鎖?
- 什么叫視圖?游標是什么?
- 視圖的優缺點
- 列舉幾種表連接方式,有什么區別?
- 主鍵和外鍵的區別?
- 在數據庫中查詢語句速度很慢,如何優化?
- 數據庫三范式是什么?
- Varchar2和varchar有什么區別?
- Oracle和Mysql的區別?
- order by與group by的區別
1.3 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 性能優化的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 性能調優與架構設計——全冊
- 基礎篇:
MySQLI基本介紹、MySQL架構組成、MySQL存儲引擎簡介、MySQL安全管理、MySQL備份與恢復
- 性能優化篇:
影響MySQLServer性能的相關因素、MySQI數據庫鎖定機制、MySQL數據庫Query的優化、MySQL數據庫Schema設計的性能優化、MySQLServer性能優化、常用存儲引擎優化
- 架構設計篇:
MySQL可擴展設計的基本原則、可擴展性設計之MySQLReplication、可擴展性設計之數據切分、可擴展性設計之C ache與Se ar ch的利用、MySQLCluster、高可用設計之思路及方案、高可用設計之MySQL監控
MySQL從入門到項目實踐
- 第1篇 基礎知識
Hello MySQL、數據庫初探、MySQL常用管理工具的使用、MySQL 數據庫的基本操作
- 第2篇 核心應用
數據表的基本操作、MySQL視圖、MySQL的數據類型和運算符、MySQL函數、MySQL 數據庫查詢語句詳解、MySQL數據庫的數據與索引操作、存儲過程與存儲函數、使用MySQL觸發器
- 第3篇 核心技術
MySQL數據庫的權限管理與恢復、MySQL數據庫的復制、MySQL的日志管理、利用MySQL構建分布式應用、MySQL查詢緩存、MySQL錯誤代碼和消息的使用
- 第4篇 高級應用
在C#中實現MySQL數據庫的連接、在Java中實現MySQL數據庫的連接、在PHP中實現MySQL數據庫的連接
- 第5篇 項目實戰
項目實戰統籌階段——項目開發與規划、項目實戰入門階段——論壇管理系統數據庫開發、項目實戰提高階段——企業會員管理系統數據庫開發、項目實戰高級階段——新聞發布系統數據庫開發
03、關於學習 MySQL的思維腦圖(Xmind)
MySQL 優化問題(Xmind)
事務、鎖、sql優化原則、JION的原理、執行計划與執行明細、執行流程、表結構對性能的影響、索引
注意:關於MySQL的內容整理,包括了面試題、學習筆記、使用文檔以及Xmind思維圖幾個部分,有想獲取到的朋友可以加助理微信:mxm1073 或 掃描文末二維碼 即可獲取到
總結
總而言之,學習是自己的事,作為開發人員,MySQL是必須要掌握的,如果擁有大廠夢,基礎可不能太差,如果你對MySQL還有很多不解問題,那么這份MySQL總結大禮包一定要擁有