寫給新手的MySQL入門指南

Java團長_發表於2018-11-12

毫無疑問,MySQL 是當下最流行的開源資料庫。憑藉強大的效能和易於使用已被Google、Facebook、YouTube、百度、網易和新浪等大型網際網路公司所應用。更有統計,世界上一流的網際網路公司中,排名前20的有80%都是 MySQL 的忠實使用者。


我剛開始接觸 MySQL ,是在百度貼吧做許可權系統的時候那會我們遇到了一個奇怪的問題,一個正常10毫秒完成的 SQL 查詢請求會突然變得要執行100多毫秒才結束。上網查不到答案,只好硬著頭皮翻碼。後來遇到了越來越多的問題,也是類似的情景,於是我就逐步養成了通過分析碼理解原理的習慣。


後來到了阿里,我參與了阿里雲關係型資料庫服務核心的開發,並且負責開發開源分支 AliSQL,讓我對 MySQL 核心和原始碼有了更深層次的研究和理解。在服務內部客戶和公有云客戶的過程中,我有機會面對和解決足夠多的問題,再通過手冊的系統學習,算是將 MySQL 的知識網路補了起來。


這些年,打著“資料庫大拿”的稱號(當然,我並不敢這麼自詡),許多開發人員都會找我諮詢,他們經常問我諸如“為什麼我的count(*)這麼慢”“MySQL對於千萬級的大表要怎麼優化”“SQL 使用 Join 好還是多次 Select 好”“1000 多萬條資料,我建了索引還是慢,怎麼辦”等等問題。


我發現其實許多開發者,都對如何學習和應用 MySQL 比較迷茫。我在使用 MySQL 的過程中,也曾遇到了形形色色的問題,從開發技巧到管理維護,從效能問題到安全問題。回顧這個過程,我的第一個感受就是,如果一開始就有一些從理論到實戰的系統性指導,那該多好啊,也許我可以學習得更快些。


因此,我在極客時間開設《MySQL實戰45講》專欄就是希望結合我十幾年跟 MySQL 打交道的實戰經驗,讓更多使用或對 MySQL 感興趣的朋友少走彎路,真正搞懂MySQL。


我是誰?


我是林曉斌,網名“丁奇”。我先後在百度和阿里任職,從事 MySQL 資料庫方面的工作,一步步地從一個資料庫小白成為 MySQL 的程式碼貢獻者。回想起來,從我第一次翻 MySQL 的原始碼查到答案至今,已經有十個年頭了。在這個過程中,見證了 MySQL 從一個小型的關係型資料庫發展為各大企業的核心資料庫系統,也走了不少彎路,但同時也收穫了很多的知識和思考,希望能在這個專欄裡分享給你。


作為一個過來人,我能深刻地意識到深入研究 MySQL 原始碼對於我人生的影響。不說別的,MySQL 本身就是一個設計優良的系統,深入研究原始碼,你能從中學習到其巧妙的設計思路,並且把這些思路用到自己的工作中。


比如 MySQL 裡的 WAL 機制、索引的實現、快取的處理方式等等,這些都是非常經典的設計,其中的設計思路和理念可以幫你解決你日常工作中的很多問題。換句話說,這就相當於你直接在向開發 MySQL 的大神學習開發經驗。我相信他們有足夠大的格局和實力來幫你成長和進步。


你將獲得?


這個專欄裡,我並不想帶你去見證 MySQL 是有多複雜,相反,我會幫你梳理出學習 MySQL 的主線知識,比如事務、索引、鎖等。在這條主線上,每個點就是一個概念、一個機制或者一個原理說明。我會就開發過程中經常遇到的具體問題和你分析討論,並且幫你理解問題背後的本質。當然,講本質的時候,我會把它涉及的周邊知識給你捋一遍。


MySQL內容可謂浩瀚,因此這個專欄肯定無法覆蓋所有  MySQL 知識,而我將線上的選擇上,選那些平時使用資料庫需要會用到的。希望這些線組成的網,能夠讓你對 MySQL 的體系框架有更好的認識。


概括起來,看完我的專欄,你會有下面收穫:


  • MySQL 核心技術詳解與原理說明

  • 36 個 MySQL 常見痛點問題解析

  • 完整的 MySQL 學習路徑


下面是目錄,更清晰地展示了這個專欄的具體內容


640      

限時福利


福利一:限時優惠¥68,原價¥99,11月24日恢復原價。


福利二:每邀請一位好友購買,你可獲得24元現金返現,多邀多得,上不封頂,隨時提現。(提現流程:極客時間App - 我的 - 分享有賞)


如何訂閱


長按識別下圖二維碼,試或訂閱專欄。


640


點選「閱讀原文」,試或訂閱專欄。

相關文章