對於技術面試來說,考察的核心內容具備以下兩個特徵:
- 涉及的知識點廣,因為不同的公司和不同的面試官技能知識結構是不同的,所以關注的問題和麵試內容也是不同的,因而具備面試知識點廣的特點;
- 考察的知識點深,以阿里巴巴為例(其他大廠也是類似的情況),通常會從一個大的方向切入,然後再層層深入,直到問到你不會為止。比如,你都瞭解哪些數據庫引擎?這個數據庫引擎的特點是什麼?這個數據庫引擎是如何存儲數據的?為什麼要採用這種存儲方式?等等。
所以針對以上兩個問題,整理了這 8 大模塊知識點,基本囊括了 MySQL 的所有知識點,它包含的內容如下:
這份MySQL知識整理筆記內容包括8個內容:
- 事務
- 鎖
- SQL優化原則
- JOIN
- 執行計劃與執行明細
- 執行流程
- 表結構對性能的影響
- 索引
關於這8大問題還特意整理了MySQL100問解析分享給大家,有需要的朋友麻煩幫忙轉發後私信回覆【筆記】即可獲取資料免費領取方式!
事務
- 特性
- 分類
- 隔離級別
MySQL事務相關面試問題
- 什麼是事務?
- ACID是什麼?可以詳細說一下嗎?
- 同時有多個事務在進行會怎麼樣呢?
- 怎麼解決這些問題呢?MySQL的事務隔離級別瞭解嗎?
- Innodb使用的是哪種隔離級別呢?
- 對MySQL的鎖瞭解嗎?
- MySQL都有哪些鎖呢?像上面那樣子進行鎖定豈不是有點阻礙併發效率了?
鎖
- lock
- latch
- 一致性的非鎖定讀
- 一致性的鎖定讀
- 死鎖
SQL優化原則
- 選擇需要優化的SQL
- Explain和Profile入手
- 永遠用小結果集驅動大的結果集
- 在索引中完成排序
- 使用最小Columns
- 使用最有效的過濾條件
- 避免複雜的JOIN和子查詢
JOIN原理
- JOIN的原理
- JOIN的優化原則
執行計劃與執行明細
- Explain
- Profiling
索引
- 類型
- 方法
- 創建
索引面試相關問題
表結構對性能的影響
- 冗餘數據的處理
- 大表拆小表
- 根據需求展示更加合理的表結構
- 常用屬性分離為小表
表結構設計相關
- 為什麼要儘量設定一個主鍵?
- 主鍵使用自增ID還是UUID?
- 字段為什麼要求定義為not null?
- 如果要存儲用戶的密碼散列,應該使用什麼字段進行存儲?
執行流程
- 查詢緩存
- 解析器生成解析樹
- 預處理再次生成解析樹
- 查詢優化器
- 查詢執行計劃
- 查詢執行引擎
- 查詢數據返回結果
MySQL優化學習思維筆記
更多相關進階學習資料分享
有需要的朋友麻煩幫忙轉發後私信回覆【筆記】即可獲取資料免費領取方式!
這次小編針DUI MySQL優化和架構設計知識難點特地分享一份PDF文檔《MySQL性能優化與架構設計解析文檔》,同時配合這位大咖的MySQL學習視頻,學起來會事半功倍,接著往下看吧。
這份文檔共分3個部分
- 基礎篇介紹了MySQL軟件的基礎知識、架構組成、存儲引擎、安全管理及基本的備份恢復知識。
- 性能優化篇從影響 MySQL 數據庫應用系統性能的因素開始,針對性地對各個影響因素進行調優分析
- 架構設計篇則主要以設計一個高可用可擴展的分佈式企業級數據庫集群環境為目標,分析介紹了通過MySQL 實現這一目標的多種架構方式。
由於篇幅限制,小編這裡只將此實戰文檔的所含內容全部展現出來了,需要獲取完整文檔用以學習的朋友們可以關注一下小編,後臺私信:【筆記】獲取免費領取方式!
基礎部分
- MySQL基本介紹
- MySQL架構組成
- MySQL存儲引擎簡介
- MySQL安全管理
- MySQL備份與恢復
目錄及內容展示
性能優化篇
第一節:MySQLServer性能的相關因素
第二節:MySQL數據庫鎖定機制
主要內容包括:MySQL鎖定機制簡介、各種鎖定機制分析、合理利用鎖機制優化MySQL、小結
第三節:MySQL數據庫Query的優化
主要內容包括:理解MySQL的QueryOptimizer、Query語句優化基本思路和原則、充分利用Explain和Profiling、合理設計並利用索引、Join的實現原理及優化思路、ORDERBY,GROUPBY和DISTINCT優化
第4到6節
- MySQL數據庫Schema設計的性能優化
- MySQLServer性能優化
- 常用存儲引擎優化
架構設計篇
這部分分為7節內容如下:
- MySQL可擴展設計的基本原則
- 可擴展性設計之MySQLReplication
- 可擴展性設計之數據切分
- 可擴展性設計之Cache與Search的利用
- MySQLCluster
- 高可用設計之思路及方案
- 高可用設計之MySQL監控
閱讀更多 JavaSpring高級進階 的文章