塗抹MySQL自序 - 輪扁斫輪

lhrbest發表於2017-07-20

這些年一直堅持在部落格上發表系列文章,也出版過技術方面的書,在業內積累了那麼一點點知名度,就有很多朋友慕名而來跟我交流,要向我請教技術上的問題,諮詢學習的技巧,讓我推薦閱讀的圖書等等。朋友們的熱情倒讓我感到很是忐忑,我雖然寫過一些文章,但都是些通俗的東西,其實沒什麼學問,而且老實講,有些朋友提出的問題真是不容易回答,比如有朋友上來就問我怎麼最佳化資料庫(這類問題恰恰是最多的),也有人問我看什麼書能達到我現在的水平等等。

我知道這其中有些人確實是喜歡並且希望從事DBA這個職業的,他們當前只是沒有經驗才顯得迷茫,其實我也是從這個階段走過來的,多年以前我曾寫過一篇:,其中的內容也是我有感而發。因為了解成長道路上的艱辛,我不願意隨口幾句敷衍他們,使他們走了彎路。可是因為自己的水平有限,我又難以簡單幾句話就能的明白,有時候拉拉扯扯說了一堆,反倒是提問者自己不耐煩,甚至還有朋友直接了當地指責我不願意分享(這個殺傷力太大,我的文章都白寫了嗎),整的我的心裡也很受傷,對於這樣的人,我當機立斷大喝一聲:“你是猴子搬來的救兵嗎?”。不過我知道,多數人還是希望透過不斷學習獲得提高,看到他們就像看到曾經的我,我真心想幫助這些朋友。

說起讀書和學習,國內外不少前輩先賢都有論述的文章,我們耳熟能詳的:“學而不思則罔,思而不學則殆;知之為知之,不知為不知。。。”等等出自論語的至理名言早已流傳千古,我一個剛及而立的後學晚輩,竟然也敢以《論》起談,豈不是在自暴已醜,是要叫人笑掉大牙的嘛。但是我想,聖賢們的文章高瞻遠矚,高屋建瓴,高處不勝寒哪,以至於應者寥寥,我基於自身實力水平,也想借這個場合,站在稍低一層的層次,談一談這些年我學習過程中的一些感受。

先從一個典故開始吧。

春秋五霸之一的齊桓公,一次在堂上讀書,堂下一名叫輪扁的技工師傅看到了,就放下手上的工作,走到堂上問桓公:“請問桓公在看什麼書?”

齊桓公回答他說:“這是聖人的書。”

輪扁接著問:“聖人在哪呢?”

齊桓公回答:“聖人已經死了!”

輪扁說道:“那公所讀的,不過是古人留下來的糟粕罷了。”

齊桓公聞之怒道:“寡人讀書,豈是你這個做車輪的工匠可以議論的嗎,今天你要是能說出道理還則罷了,要是說不出來,明年的今天就是你的忌日(好吧,我承認武俠片看多了,這臺詞管不住自己都往外蹦)。”

輪扁於是說道:“我是透過我平常工作觀察到的情況來理解的,給車做軲轆雖然不是高階崗位,但也是個技術工種。在做車輪的時候,如果輪孔弄的太寬,那麼雖然車輪能做的很光滑但用起來並不牢固,如果輪孔弄的過緊,車輪又會很粗糙難以裝配;因此只有得心應手,不緊不松才能做出高階大氣上檔次的車輪。可是要如何做到得心應手呢,我做輪子的時候知道存在這樣一種境界,但用嘴又說不清楚,我甚至都沒辦法將這點技巧傳授給我的兒子,我的兒子也沒辦法從我這兒學到這一點,所以雖然我都七十多了還得在這兒做輪子。因此我想說的是,古人和他們那些不能言傳的東西想必也早一起都死去了,所以公所讀的,不過是古人留下來的糟粕而已!”

提示:這則典故出自《莊子外篇·天道十三》,叫做《輪扁斫輪》,原文如下:“

桓公讀書於堂上,輪扁斫輪於堂下,釋椎鑿而上,問桓公曰:“敢問:公之所讀者,何言邪?”公曰:“聖人之言也。”曰:“聖人在乎?”公曰:“已死矣。”曰:“然則君之所讀者,古人之糟粕已夫!”桓公曰:“寡人讀書,輪人安得議乎!有說則可,無說則死!”輪扁曰:“臣也以臣之事觀之。斫輪,徐則甘而不固,疾則苦而不入,不徐不疾,得之於手而應於心,口不能言,有數存焉於其間。臣不能以喻臣之子,臣之子亦不能受之於臣,是以行年七十而老斫輪。古之人與其不可傳也死矣,然則君之所讀者,古人之糟粕已夫!”

文中沒有寫明輪扁老師傅結局如何,但是想來老人家還是有極大的機率繼續給桓公做車輪子的,輪扁(當然其實是莊子老人家借輪扁的口)講的很有道理,找個熟練工不容易啊。

讀到這裡,我估摸著有些朋友已經在暗自嘀咕:看我這意思,似乎是在宣揚讀書無用論了喲,出版社負責審校的同學,恐怕也已準備著把我這段序文刪掉。都彆著急,毛主席一直教導我們,要用辯證的眼光看待問題。古人們說的不一定都對,我覺著問題的關鍵不在於看還是不看書,關鍵點首先是所閱讀的圖書質量,作者有沒有把要表達的意思闡述清楚,其次是讀者們有沒有認真閱讀,獨立思考,真正領會作者想要表達的思想。

儘管時下寫文字有種種限制,但是得益於近些年出版行業發達,現如今世面上講經驗、談技巧、擺案例類的圖書紛雜湧現,對於IT技術領域這類圖書就更多了(因為IT行業本就是門實踐性很強的技術)。在書中應對案例中出現的故障,作者們自己往往駕輕就熟,揮灑之間數千字,似乎也講的透徹,但是初學者朋友可能看的雲裡霧裡似懂非懂而不自知。彷彿學到了什麼,但真正應對故障時卻手忙腳亂,場景稍有變化甚至都不知道從何著手處理。這種情況若對應到《輪扁斫輪》這則典故,說明讀者還沒有達到“不徐不疾,得之於手而應於心”的境界。

讀者朋友們認真看過書中的內容,可是實際工作中卻不能很好的應用,這究竟是什麼緣故呢,我想大概就是前面所說的兩點關鍵因素,詳細說來如下:

  • 其一:可能作者沒有(想或不想)把真正的精髓寫出來。目前比較暢銷的IT圖書,其作者大都是來自一線的工程師,隨著這些年圖書出版門檻的降低,很多人有機會能將自己工作學習過程中積累的經驗寫出來(我認為這也是IT圖書中少見思想類圖書的原因)。優秀的IT工程師都是出色的實踐者,他們技術掌握的比較紮實,接觸面廣,經驗豐富,當遇到問題時,處理的方法往往都是下意識的選擇,沒有為什麼,就是要這麼做。在寫作的時候也是下意識就將過程寫了出來,而沒能把思路闡釋清楚。
  • 其二:並非書寫的不好,可能由於讀者自身層次的原因,沒能正確理解作者表達的精髓。對於讀者來說,找到一本好書難,讀透一本好書更難。過去有一種說法叫做:“書讀百遍,其意自現”,我覺著這點在IT技術領域的侷限是很大的,雖然任誰也不能否認閱讀的作用是巨大的,可是,正如我前面談到的,IT是門極為注重實踐的行業,按照過去的老話講,IT工程師也是個手藝人。因為行業的特點,看的懂和做的到是兩碼事,儘管每讀一遍都會有新的理解,但是這種理解必須要與實踐相結合才能發揮最大的威力。

對此,莊子老人家其實也早已高度抽象地概括為:視而可見者,形與色也;聽而可聞者,名與聲也。世人以形色名聲為足以得彼之情。夫形色名聲,果不足以得彼之情,則知者不言,言者不知,而世豈識之哉!

要想學的好,首先所讀的書必須擁有比較高的質量,其次學習也必須得能學到書中的精華,所以您瞧,有多種因素可能會給學習的質量造成干擾。再舉這樣一個案例,DBA管理的系統出現響應的情況,透過分析發現是由於之前執行的某項操作,正是該操作佔用了過多的資源才導致系統響應變慢,針對這種情況怎麼處理呢。一定有些資料中提到,要殺掉佔用過多資源的程式,以釋放資源,提高系統的響應效率,並且有實際的案例佐證此方案的有效。於是在這個場景中,DBA為了緩解系統負載壓力,利用之前看過的材料中提到的方法,手動殺掉了持有該操作的程式。

若僅把所執行的操作做為獨立個體來看,這當然是個很好的案例,有可能系統負載立刻就得到了明顯下降,但問題有沒有被得到真正解決呢?深層次的根源究竟又是什麼呢?如果沒有弄清楚這些情況,那麼所做的操作有可能不起效果(這就算好訊息了),甚至有可能充滿了風險,因為不是所有佔用較多資源的程式都是不正常的,也不是所有程式都能隨便中止,不管遇到的是什麼問題,能找出造成問題的關鍵所在最重要,元芳,你說是不是。

不管要學習哪方面的知識,在學習過程中可參考的資料會有很多,在網際網路時代更是可以用浩瀚來形容,這種現狀換個角度看反倒更令讀者們無所適從,不知道該選擇看哪些資料好,若讓我來選擇,首要推薦的仍然是官方提供的技術文件,對於ORACLE資料庫可以到瀏覽,對於MySQL資料庫可以到http://dev.mysql.com/doc瀏覽,官方文件始終都是內容最權威,最全面的學習資料,恆久遠永流傳。對於有一定經驗的朋友,可能會認為官方文件的深度不夠,案例也少,對於這部分朋友,可以去看一些專門的文章和圖書,在選擇圖書時只有一個準則,就是要讀有口碑的書。目前各大網路商城都有評分和評論系統,購買前先看一下其它使用者的意見做為參考會很有幫助。

我讀過的很多圖書,文章開篇總要吹些牛皮,吸引讀者的眼球,把讀者的胃口調起來,希望大家能有興趣接著往後看(歡迎對號入座)。像三思這種開篇不僅自我貶低,且一槍打擊一大片的,怕著實不多見,我想這跟我的性格有關---耿直(好吧我承認其實是情商低),也跟我所從事的職業有關---技術,來不得半點兒虛假。

好了,講到這裡,是時候跟大家介紹下本書的內容了(分明是要開始王婆賣瓜自賣自誇),這並不是一本逐個介紹MySQL命令的書,不是一本使用者幫助手冊,不是這個功能講完講那個功能的書。在寫作之初我就考慮要設定一條主線,不是依次講特性,而要依據使用者接觸和學習MySQL的脈絡去把握,介紹MySQL資料庫從無到有,其安裝,配置,管理,最佳化的過程,在這個過程中穿插資料匯入匯出,效能/狀態監控,備份恢復和最佳化方面的內容,最後再談一談MySQL資料庫服務從單臺到多臺,從單例項到多例項叢集的部署,等等稍顯高階的應用方案。

說起來,這其實是一本站在初學者的視角,描述他不斷學習和提高的路徑的圖書,在這個過程中,我當然不可能面面俱到地講到所有的技術特性,不過在介紹某些知識點時,其實在有意地忽略一些細節,是希望能讓讀者有思考的空間,即能看到優勢同時也學會看到不足,找出更適合自己的解決方案,逐漸地形成自己的操作思路,窺見“不徐不疾,得之於手而應於心”的境界。

最後,我想說的是,官方文件也好,技術圖書也好,這些都是外在因素,最重要的因素仍然是自己,是否真正喜歡所要學習的技術,是否確實願意花費時間和精力去深入研究,是否能夠承受枯燥的應用和測試。只要打好了基礎,看多了案例,精通了技能,學好了本領,明瞭方方面面前因後果,用不了多久,就可以成為大拿,升職加薪,當上技術總監,出任CTO,迎娶白富美,登上人生頂峰!是不是想想都激動啊!小夥伴兒們,那就從現在開始吧,翻開第一頁,MySQL在向你招手。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2142331/,如需轉載,請註明出處,否則將追究法律責任。

相關文章