極客時間出品的《MySQL實戰45講》由林曉斌所作,林曉斌網名丁奇,前阿里資深技術專家。本專欄課程從原理到實戰,丁奇帶你搞懂MySQL。
《MySQL實戰45講》課程背景
資料庫是一個綜合系統,其背後是發展了幾十年的資料庫理論。也許你會覺得資料庫並不難,因為你可以熟練地寫出 SQL,也可以在各個客戶端裡玩得遊刃有餘。但就以最常見的 MySQL 為例,作為程式設計師,你在使用 MySQL 的過程中,是不是曾經遇到過類似的問題:
為什麼我的 count(*) 這麼慢?
為什麼我建了索引,卻根本沒有效果?
為什麼我只查一行的語句,也執行這麼慢?
MySQL 對於大表要怎麼優化?
之前,你大概都是通過搜尋別人的經驗來解決問題。你有沒有想過,如果能夠理解 MySQL 的工作原理,那麼在遇到問題的時候,是不是就能更快地直戳問題的本質?比如說,知道了索引的實現原理,那遇到索引問題的時候,你是不是就能從原理的角度,推斷可能的解決方案?
本專欄將會以實戰中的常見問題為切入點,帶你剖析現象背後的本質原因。更重要的是,本專欄還將通過幾條主線為你串起各個零散的知識點,再由線到面帶你構建 MySQL 知識體系。
《MySQL實戰45講》講師介紹
林曉斌,網名“丁奇”,前阿里資深技術專家,曾負責阿里雲 RDS 核心開發團隊和運維團隊,並推動了 AliSQL 分支開源。作為活躍的 MySQL 社群貢獻者,丁奇專注於資料儲存系統、MySQL 原始碼研究和改進、MySQL 效能優化和功能改進,熱衷於解決 MySQL 疑難問題。
在這個專欄裡,丁奇將會結合自己十多年來通過 MySQL 原始碼找答案的經歷,和你分享一條高效的學習路徑,旨在給你一個從理論到實戰的系統性指導,讓你少走彎路,徹底搞懂 MySQL。
《MySQL實戰45講》專欄模組
專欄共 45 期,包括兩大模組。
模組一,基礎篇。為你深入淺出地講述 MySQL 核心知識,涵蓋 MySQL 基礎架構、日誌系統、事務隔離、鎖等內容。
模組二,實踐篇。將從一個個關鍵的資料庫問題出發,分析資料庫原理,並給出實踐指導。每個問題,都不只是簡單地給出答案,而是從為什麼要這麼想、到底該怎樣做出發,讓你能夠知其所以然,都將能夠解決你平時工作中的一個疑惑點。
《MySQL實戰45講》課程大綱
基礎篇
- 基礎架構:一條SQL查詢語句是如何執行的?
- 日誌系統:一條SQL更新語句是如何執行的?
- 事務隔離:為什麼你改了我還看不見?
- 深入淺出索引(上)
- 深入淺出索引(下)
- 全域性鎖和表鎖:給表加個欄位怎麼有這麼多阻礙?
- 行鎖功過:怎麼減少行鎖對效能的影響?
- 事務到底是隔離的還是不隔離的?
實踐篇
- 普通索引和唯一索引,應該怎麼選擇?
- MySQL為什麼有時候會選錯索引?
- 怎麼給字串欄位加索引?
- 為什麼我的MySQL會“抖” 一下?
- 為什麼表資料刪掉一半,表檔案大小不變?
- count(*)這麼慢,我該怎麼辦?
- 答疑文章(一):日誌和索引相關問題
- “order by”是怎麼工作的?
- 如何正確地顯示隨機訊息?
- 為什麼這些SQL語句邏輯相同,效能卻差異巨大?
- 為什麼我只查一行的語句,也執行這麼慢?
- 幻讀是什麼,幻讀有什麼問題?
- 為什麼我只查一行的語句,鎖這麼多?
- MySQL有哪些“飲鴉止渴”提高效能的方法?
- MySQL是怎麼保證資料不丟的?
- MySQL是怎麼保證主備一致的?
- MySQL是怎麼保證高可用的?
- 備庫為什麼會延遲好幾個小時?
- 主庫出問題了,從庫怎麼辦?
- 讀寫分離有哪些坑?
- 如何判斷一個資料庫是不是出問題了?
- 答疑文章(二):用動態的觀點看加鎖
- 誤刪資料後除了跑路,還能怎麼辦?
- 為什麼還有kill不掉的語句?
- 我查這麼多資料,會不會把資料庫記憶體打爆?
- 到底可不可以使用join?
- join語句怎麼優化?
- 為什麼臨時表可以重名?
- 什麼時候會使用內部臨時表?
- 都說InnoDB好,那還要不要使用Memory引擎?
- 自增主鍵為什麼不是連續的?
- insert語句的鎖為什麼這麼多?
- 怎麼最快地複製一張表?
- grant 之後要跟著 flush privileges 嗎?
- 要不要使用分割槽表?
- 答疑文章(三)
- 遞增id用完了怎麼辦?
我的公眾號:猿人學 Python 上會分享更多心得體會,敬請關注。
***版權申明:若沒有特殊說明,文章皆是猿人學 yuanrenxue.com 原創,沒有猿人學授權,請勿以任何形式轉載。***