Contents
像專業人士一樣調校 MySQL 的技巧 | 瞭解如何防止 MySQL 的效能瓶頸問題
從這 3 小時的課程,你會學到
- 瞭解 MySQL 如何最佳化和執行查詢
- 找到 MySQL 在你的查詢上花費時間最多的地方,以及為什麼?
- 找到那些對系統的大部分負載負責的少數查詢
- 如何從 MySQL 中大量的效能檢視和指標中找到相關資訊?
- 在執行之前,如何根據統計資料和成本決策自動規劃查詢?
- 理解什麼是叢集索引( Clustered Index )?
- 如何選擇最佳主鍵?
- 找到哪些表 (table)需要索引,哪些表沒有索引會更好
- 我們如何幫助 MySQL 最佳化器做出更好的決定?
- 在多列上使用索引時,哪些是常見的誤區?
- 哪些是使冗餘索引有用的使用案例,以及什麼時候要避免它們?
- 涵蓋製作伺服器配置的最佳做法
- 哪些是 MySQL 最有可能從非預設值中受益的三個選項,以及如何設定它們?
- InnoDB 中的資料生命週期,以便我們在進行配置修改時有背景知識
- 瞭解為什麼需要 Transactions 和鎖,以及減少其影響的一些方法
- MySQL 擴充選項介紹
- 使用複製擴充閱讀的基本概念
- 如何在 MySQL 中劃分資料
- 利用佇列和分片擴充寫入的基本概念
要求
- 你需要使用一台 Windows/Mac/Linux 電腦,有10GB的可用磁碟空間
- 需要對資料庫物件(如表和索引)有基本的熟悉。
- 對 Linux 有一定的瞭解會有幫助
課程說明
MySQL 效能調校線上課程課程。
MySQL架構
- 檢視查詢執行中涉及的步驟
- Cient/Server 協議如何影響 MySQL
- 瞭解查詢最佳化器如何開展工作
- 儲存引擎層如何使 MySQL 獨特
尋找查詢最佳化的候選者
- 利用 “效能模式”,它是發現需要最佳化的查詢的一個金礦,因為它允許我們測量時間的流向
- 找到對系統的大部分負載負責的少數查詢。檢查到前 1000 個查詢,通常不值得你去最佳化。
- 如何從 MySQL 中大量的效能檢視和指標中找到相關資訊
- 理解為什麼 UPDATE 和 DELETE 語句也是讀,儘管它們主要是寫語句。這將對I/O產生影響,並因此對響應時間產生影響
分析查詢
- 理解為什麼 MySQL 在每個查詢請求之前都會建立一個查詢計劃
- 如何閱讀查詢計劃,並瞭解每個基礎節點型別如何在 MySQL 上工作
- 一系列的例子,顯示如何使用 EXPLAIN 輸出,以確定 MySQL 在你的查詢上花費的時間,以及為什麼要這樣做
- 為了發現效能問題,需要尋找哪些重要的資訊?
叢集索引和選擇主鍵
- 當我們使用索引組織的表,如 MySQL 中的表,主索引的選擇是非常重要的
- 我們將看到主鍵如何影響隨機或順序I/O的數量,二級索引的大小,以及有多少頁需要被讀入緩衝池
- 我們將理解,為什麼一個最佳的主鍵,相對於叢集索引來說,要儘可能的小(以位元組為單位),保持單調的增長,並將我們經常查詢的行分組,而且彼此之間的距離很近
為效能而編制索引
- 索引的主要功能是什麼?
- 我們將看到到底哪些表需要索引,哪些表沒有索引會更好
- 我們將檢查 MySQL 是如何依靠統計資料來選擇最佳索引的,以及我們如何幫助它做出更好的決定
複合索引
- 複合索引的常見錯誤
- 如何決定多列索引的列的順序
- 能夠推理出索引的工作原理,並根據這種理解而不是經驗法則來選擇索引
- 哪些是使冗餘索引有用的用例,以及什麼時候應該避免它們
- 在一些基準上工作,以檢查實際的數字效能
MySQL伺服器配置
- 透過考慮一些最佳做法,檢查我們應該如何處理 MySQL 配置的變化,以便我們能夠成功地調整MySQL
- 哪些是 MySQL 最有可能受益的三個選項,來自非預設值,還有如何設定它們
- 透過對 InnoDB 中的資料生命週期的概述,以便我們在進行配置修改時有背景知識
- 調整對某些使用情況很重要的參數,例如,用於高併發工作負載的緩衝池例項,以及如何對某些查詢使用並行執行。
MySQL事務和鎖
- 事務( Transaction )對於確保資料完整性非常重要,但如果使用不當,就會導致嚴重的效能問題
- 瞭解為什麼需要鎖和一些減少其影響的方法。
- 索引、拆分事務和隔離級別如何幫助減少鎖的數量
- 監測選項和檢查哪些報告表來發現鎖問題
擴充 MySQL 的介紹
- 擴充套件 MySQL 意味著什麼,並且,我們將走過我們可能需要擴充的不同軸線。
- 理解如何擴充不同型別的負載
- 複製以及為什麼我們需要利用讀取池、健康檢查和服務發現。
- 當決定對資料庫進行分片時,哪些是主要的關注點和隱患?
- 如何在 MySQL 中劃分資料
- 哪些是使用佇列的用例和優勢?
- 用分片法擴充寫入的基本概念
目標受眾
- 對影響應用設計和效能的高階資料庫內部結構感興趣的開發人員
- 資料庫管理員
- 對建立更好的MySQL應用感興趣的所有人
講師簡介
Lucian Oprea 軟體工程師 ( 更多講師課程介紹 )
我是一名來自羅馬尼亞的軟體工程師,有很強的電腦科學背景,有超過8年的專業經驗。
我熱衷於開發易於使用、智慧和架構良好的產品。我提倡編寫遵循最佳設計實踐的精心製作的程式碼。我力求把同樣的熱情和完整的水平帶到教學中。
英文字幕:有
- 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To
🙌 如何有效率地管理 ChatGPT 輸出與整理自己的 ChatGPT 提示( prompts )使用情境?LN+ for Web 已經針對 ChatGPT 的整合做最佳化
🙌 讓 Notion AI 成為你線上學習的得力助手,詳細操作請參考 – 使用 Notion AI 功能來為 udemy 的課程做摘要總結
- 點選這個✨優惠連結 課程特價 | Udemy 永久擁有課程 NT370 起( 請登入 Udemy|按過“優惠連結”後到”報名參加課程“連結網頁做更新 )
- Udemy 現在越來越多課程有中文字幕,請參考 Soft & Share 中文線上課程
- 手機上點選優惠連結看到的價格比電腦上看到的貴
- $代表當地貨幣, 如在台灣為 NT
- 點選”報名參加課程”有可能因瀏覽器 cookies 轉久一點或回報錯誤而無法連上,請稍等刷新或重新點選就會出現
報名參加課程

你必須登入才能發表留言。