《MySQL是怎樣運行的:從根兒上理解MySQL》出版啦!

等了一年又一年,千呼萬喚始出來,《MySQL是怎樣運行的:從根兒上理解MySQL》這本書終於面世啦!趕忙先瞅瞅它長啥樣吧:程序員

看到封面後,不少小夥伴心裏確定飄起了這樣的聲音:「額~ 這麼卡哇伊的封面,這是給小孩兒看的嗎?」其實這麼說也沒問題,若是小孩兒都能看懂的話,大人再看不懂豈不是更很差意思哈~面試

小孩子從小就有一個疑惑:爲何我在接觸一門新課程的時候老是以爲它很高大上,而且學的過程也比較痛苦,可是當我真正學會它的時候,又會以爲這玩意兒也就那樣,沒什麼了不得的,可是爲啥學的時候就不能很輕鬆呢?有時候咱們走了好久,卻忘記本身爲何出發,相似的,大人長大後就忘記了本身做爲小孩時的樣子,一個滿腹經綸的技術專家對於初學者所面臨的問題每每是沒法切身體會的,因此我決定以小孩子(初學者)的角度去創做一些技術書籍,從用戶的角度出發去解決同志們在學習過程當中面臨的痛點,這也是「小孩子4919」筆名的由來。數據庫

爲何要寫這本書

做爲一名智商平平的程序員,在平常學習過程當中常常會遇到兩種賊尷尬的狀況:服務器

  • 學習資料極其晦澀,看起來都是些高大上的知識,看着看着就困了;
  • 不少通俗易懂的資料感受就是小兒科,看完了跟沒看差很少。

而廣大的人民羣衆其實須要經歷一個由淺入深的平緩學習曲線,並且這個學習的過程不至於特別的無聊。我靈機一動,這天底下和我同樣的同窗確定有不少不少,若是我能把那些晦澀難懂的知識按照尊重學習者認知規律的方式表達出來,那豈不是一件極其有意義的事情嗎?畢竟我一我的敲代碼創造的價值和讓成千上萬的人快速、友好的學會一門知識所創造的價值是遠遠不能比的。固然,這只是一個美好的想法,作這個事情是須要投入巨大的精力的。因而我辭掉了工做,放棄了週末,決心花上幾年時間來幹這件能讓我每天打雞血的工做。微信

寫做這本書的時間主要是花在下邊這兩個方面:markdown

  • 本身搞清楚MySQL究竟是怎樣運行的,這個過程就是不斷的研究源碼,參考各類書籍和資料;
  • 思考如何把我已經知道的知識表達出來。這個過程就是我不停的在地上走來走去,梳理知識結構,斟酌用詞用句,不停的將已經寫好的文章推倒重來,只是想給你們一個不錯的用戶體驗。

這兩個方面用的時間基本上是各佔一半。oop

本書有什麼特點

這並非一本傳統意義上的技術圖書,大體有如下特色。學習

  • 全文用大白話寫成,並且有的地方在「扯犢子」,就像是有我的在跟同窗們嘮嗑同樣,但願各位看起來別犯困。
  • 從初學者角度出發,嘗試避免用一個沒學過的概念去介紹另外一個新概念。
  • 語言在圖片面前一直都是很蒼白的,因此我畫了不少圖,各位慢慢看。
  • 魔鬼藏在細節中。以往不少同窗在讀書的時候感到困惑,是由於細節給出的不夠多,致使你們夥瞎猜。
  • 層層鋪墊的結構劃分。本書覆蓋的內容造成了一個閉環,但願你們在讀完書後能有一個看完了一個完整故事的感受。
  • 等等等等,我一時想不起來了。

本書寫了什麼

雖然本書在某些方面看起來不是那麼嚴肅,可是的確是一本專業技術圖書,致力於覆蓋你們工做和麪試過程當中最常遇到的一些關於MySQL的核心概念。本書共劃分爲4個部分,雙色印刷(注意是雙色印刷,很漂亮滴)正文約450頁。各部分簡介以下。優化

  • 第1部分(第1章~第3章):以只會寫增刪改查語句的小白身份從新審視MySQL究竟是個什麼東西,介紹MySQL的服務器程序和客戶端程序有哪些、啓動選項和系統變量以及字符集的一些事情。
  • 第2部分(第4章~第9章):嘮叨記錄、頁面、索引、表空間的結構和用法。第2部分是全篇的基礎,後邊的章節都依賴於這些結構。
  • 第3部分(第10章~第17章):介紹同窗們工做中常常遇到的查詢優化問題,好比單表查詢是如何執行的,鏈接查詢是怎麼執行的,MySQL基於成本和規則的優化是個什麼東西。本部分還十分詳細的介紹如何查看Explain語句的執行結果。
  • 第4部分(第18章~第22章):介紹爲何會有事務的概念,以及MySQL是如何實現事務的,其中包括redo日誌、undo日誌、MVCC、各類鎖的細節等。

本書的目錄以下:spa

寫做本書時參考的MySQL源碼版本是5.7.22,不過書中的絕大部分知識和MySQL的版本沒有什麼特別大的關係,在某些與特定版本相關的地方我也有明顯的強調。

本書讀者對象

你們須要注意的是,本書並非一本數據庫入門圖書,所以你們須要知道增刪改查是啥意思,而且能用SQL語句寫出來。固然並不要求各位知道的太多,甚至不知道鏈接的語法均可以。另外,讀者應該掌握一些計算機基礎知識,比方說什麼是位、什麼是字節、進制轉換等。本書大體適合下邊這些讀者來閱讀:

  • 剛剛學完SQL基礎的同窗;
  • 被數據庫問題折磨的求職者;
  • 每天被DBA逼着優化SQL的業務開發小夥伴;
  • 菜鳥DBA和不是很是菜的DBA小夥伴;
  • 對MySQL內核有強烈興趣但一看源碼就發懵的小夥伴。

本書與掘金小冊的關係

在2018年3月,我在掘金平臺發佈了一本名爲《MySQL是怎樣運行的:從根兒上理解MySQL》的小冊,這本小冊就是本書的初稿,本書的章節結構和小冊的基本一致。可是這並不意味着本書就是單純的將小冊內容紙質化,紙質書在小冊的基礎上作了許多改進:

  • 咱們針對小冊創建了許多微信答疑羣,在距初稿發佈的這兩年半時間內,有成百上千的同窗針對小冊中比較難以理解的地方提出了五花八門的問題,紙質書針對這些問題優化了一下原先的表達方式,使其更容易理解。

  • 針對紙質書的第3章、第7章、第10章、第21章、第22章的絕大部份內容進行了重寫,也就是與小冊徹底不一樣。這主要是由於我以爲小冊中對應的章節表達內容太淺或者太籠統,細節給出的不太夠,可能會有歧義,反正讀着有一些怪,因此不如將它們徹頭徹尾的進行重寫,以達到更好的效果。

  • 每一章節都逐字逐句進行優化,增長若干新的細節,刪除沒必要要的段落,讓用戶體驗更佳。

總而言之,小冊是本書的前身,至關於前一個版本,本書是小冊的升級版,相信即便是讀太小冊的同窗,再讀本書也會有不少新的收穫的~

售後服務

相信大部分同窗買書確定不僅僅的只是想買那幾頁紙(固然除去部分買了收藏的同窗),咱們買書只是想買到書裏所蘊藏的知識,若是獲取不到知識的話,那這本書和廁紙有啥兩樣(可能不如廁紙柔軟~)?

雖然我盡了很大的努力來讓進階MySQL的這個過程變得更容易些,但終究不能知足全部人的需求,有不少同窗在閱讀過程當中確定會產生這樣那樣的疑惑,我知道在閱讀技術圖書的過程當中遇到了疑惑而不得解是一種多麼大的折磨(在寫做本書過程當中常常由於一個想不通的小問題而痛苦幾天甚至十幾天),若是你們在閱讀本書的過程當中遇到了什麼不得解的困惑,能夠參照書中給出的聯繫方式加入咱們的微信答疑羣提問。這裏須要特別注意一下,須要提問的同窗必定要先搞清楚本身到底哪裏不清楚,而後用通順的語句把它表達出來。以往不少同窗的問題都是含糊不清,表達不通順,這樣的問題讓人看了要發瘋,因此爲了咱們雙方的方便,提問前請認真思考一下。

關於答疑服務,購買過個人掘金小冊的同窗頗有發言權(你們能夠諮詢一下身邊買過個人小冊的同窗)。另外,我只負責回答關於本書的問題,其餘問題請和其餘同窗討論(一是做者極可能也不會,二是做者精力有限,望理解)。

如何購買本書

本書訂價99元(這是一本正文達450多頁,而且雙色印刷的圖書),可是做爲小青蛙的粉絲,不要99,也不要79,固然也不能賣九塊九(那我就太虧了),掃描下方二維碼便可半價購買本書,也就是能夠49.5購買本書(必定要經過下方二維碼購買喔,這樣做者還能多收入幾塊錢)。

使用京東的同窗能夠點擊連接:u.jd.com/tuL96S0 或者掃描下方的二維碼:

使用噹噹的同窗能夠點擊連接:u.dangdang.com/H8quW 或者掃描下方的二維碼:

你們的支持是小孩子持續創做的動力(畢竟小孩子不是富二代,也得掙錢吃飯),小孩子必定會創做更多通俗易懂的技術書籍來讓你們的學習過程更輕鬆、更快速。劇透一下,下一本技術書籍《計算機是怎樣運行的》正在來的路上,只要你懂初高中的電學,就能夠輕鬆「製做」一臺計算機,敬請期待~

相關文章
相關標籤/搜索