> 原文出處:http://dbarobin.com/2014/06/01/the-chapter-two-of-my-university-periodic-history/
> 作者:溫國兵
# 程序員的奮斗史(三十八)大學斷代史(二)我與數據庫的故事
惰性人皆有之,也算是人的一大天性。幾日之前便構思好此文,怎奈每日雜事繁多,今日才提起筆,作下此文。本文談談我與數據庫的故事。
說起和數據庫結緣,還得從大一說起。大一剛開始接觸C語言,每日就沉浸在無止境的代碼中。在網上查資料的過程中,看到別人用C語言寫了一個小型的圖書操作程序,數據庫采用的是SQL Server,運行出來的效果圖很炫,驚嘆原來還可以這樣管理數據。熟知C語言的同學肯定對文件操作不陌生,當時我們寫程序如果有靜態數據,都是放在文件里的。直到后來做的C語言課程設計,我也是一大堆文件來保存靜態數據。至此心里有了一顆小小的種子,誰知道會在后來生根發芽。
大一下期的那個暑假,開始了實驗室之旅。在實驗室每天都是自學,其中就接觸到了SQL Server和MySQL,關于實驗室的種種事情,后面還會細說。最開始接觸SQL Server,我用我那破網在網上下載數G大的數據庫安裝文件,后來才知道我們學校的陽光軟件站里有,且下載速度達十幾M每秒。花了數天把軟件下載下來以后,在百度文庫找了一個安裝說明文檔,按照截圖一步步操作。整個過程可不那么順利,并且SQL Server非常耗用內存,好幾次機器都是未響應狀態,一番折騰,終于搞掂了,別提多興奮。接著把服務啟動,打開SQL Server Manageorgiament Studio,對數據庫一竅不通的我連個登錄都折騰半天。進入主界面,不知該做個啥。后來在實驗室老師和學長的建議下,我在W3C上開始學習SQL的基礎知識。寫個查詢,滿足指定條件的數據就呈現在眼前;用個INSERT,就能把想要的數據插入到數據庫;弄個UPDATE,就能把數據更新成想要的數據;寫個DELETE,就能把不需要的數據刪除。如此簡單的語句就能實現當初以為很強大的功能,不得不感嘆數據庫的神奇。后來閱讀師兄的項目源碼,發現數據庫使用的是MySQL,于是開始折騰MySQL。Windows下的MySQL還是比較容易安裝,但就是如此簡單的操作也是折騰了很久,并且很多數據庫配置選項也不大明白。不過有了SQL Server的一些基礎,學習MySQL還是相對容易。接觸過這兩大數據庫,并且有了一點Java Web的知識,于是開始做項目。最開始的項目是練手用的,無非就是連接數據庫,然后進行增刪改查。連接數據庫使用的JDBC,這個過程中也遇到很多問題,比如驅動版本不對、中文出現亂碼、不能正確提交數據等等。我有個習慣,就是遇到問題喜歡自己搗鼓,在萬不得已的情況下不向別人提問。進入實驗室不久,由于在網上找資料,很多鏈接都定向到CSDN,于是開通了CSDN博客,這是一件正確的事的開始。
大二上期開始接觸Oracle。Oracle也是一款龐大的軟件,在網上把安裝文件下載下來以后,按照網上的安裝文檔,一步步開始操作。安裝完成后,開始使用Oracle,這個數據庫軟件運行起來可真夠嗆,2G的內存表示壓力山大,運行Oracle后其他的任何事情就別想做了。學習Oracle先是按照前輩的博客循序漸進,從基礎的SQL,到PL SQL,再到簡單的優化,整個過程的學習還算順利,不會存在很吃力的情況。此時的我對數據庫抱有極大的熱情和興趣,并且慢慢形成了以后的奮斗價值觀。
大二開設了數據庫相關的課程,沒記錯的話課程名叫做「數據庫原理」。在正式上課之前還有一點時間準備,對數據庫較熟悉的我在同學面前有了優越感,很多同學到我那里拷貝數據庫安裝文件,并且麻煩我為他們安裝數據庫。經過數次幫忙后,對整個操作已經到了了如指掌的地步。教授數據庫原理的老師十分幽默,時不時在課上爆出個冷笑話,讓人捧腹大笑。由于以前接觸過數據庫,所以數據庫介紹、關系數據庫的基本理論、基礎SQL等等知識學習起來都比較輕松。大二的我很喜歡泡圖書館,經常翻閱四樓的計算機書籍,看到兩本碩大的書,一本是Abraham Silberschatz所著的《數據庫系統概念》,另一本是David M. Kroenke所著的《數據庫原理》,如此厚的著作看完都要很久,更不提創作了。我小心翼翼地用雙手從書架取下,興高采烈地捧到書桌閱讀,看了一兩個小時,對作者不禁有敬畏之情。這些書籍堪稱經典,肯定有他的道理,想深入數據庫,這些書是必讀的。
在學習數據庫知識的過程中,難免會遇到各種各樣的問題。遇到問題后,我首先嘗試自己解決,自己解決不了再參考別人的解決辦法,解決后再用自己的方式總結,再以博客的形式發表。這種學習方式好處非常之多,讀者不妨借鑒。后來學習數據庫就多了一些深入。比如工作之后,成為了SQL Server DBA,開始看SQL 優化的知識,并且用于實踐。工作的過程中還寫了不少的檢查性能瓶頸的T-SQL。再比如MySQL,學習了MySQL的高可用、高性能技術,比如復制技術中的主從復制、雙主復制、一主多從;高可用、高性能集群方案,比如MySQL Proxy、MySQL Cluster、MySQL MHA、MySQL MMM、DRBD+Heartbeat+MySQL、LVS+Keepalived+MySQL等等;還接觸到MySQL的備份與恢復,比如冷備、熱備、增量備份、熱拷貝、延時備份等等;還接觸到MySQL的體系結構,熟悉了常用的存儲引擎,后來還看了不少MySQL相關的書籍,閱讀了部分MySQL源碼,如此博大精深的技術,深知冰凍三尺非一日之寒,還需要花很大的功夫。再比如Oracle,接觸了Linux下Oracle的安裝和配置、Oracle的體系結構、Oracle的備份與恢復、DG、RAC、Oracle優化等等。期間抱著官方文檔啃,看過不少Oracle大牛的書,比如蓋國強、白鱔等等。在CSDN的私信、知乎、OSC、ITPUB,經常有人在問我問題,我在幫別人解決問題的同時也得到比較大的提高。在這個過程中學會了怎樣快速的尋求「幫助」,怎樣分享自己的所思所得,怎樣和別人高效地溝通,還懂得了學習技術不是學習技術本身,而是技術后面的本質問題。未來從事數據庫行業還有很長的路要走,用一句「路漫漫其修遠兮,吾將上下而求索」來激勵自己。
寫到這里已經把大學的整個數據庫旅程寫完了,回過頭看整個旅程,還是有很多值得思考的地方。這里只給出一個思考,那就是為什么要學習和深入數據庫,并且把他當做以后的職業發展方向,個人認為是興趣問題。至于面試官怎么想與我無關。一次面試官問我這個問題,我回答是興趣,他說其實很簡單,無非是為了金錢嘛,當時我只能用呵呵來笑對,只能說每個人的追求不一樣。有的人為了金錢而奔波,有的人為了實現自己的價值而奮斗;有些人一生碌碌無為,有些人一生完成了諸多豐功偉績。

結合自身經歷,對以后想從事數據庫行業的學弟學妹們還是有幾點建議。第一是搞明白動機,想清楚自己是否適合這個行業,不要因為做數據庫薪資高就盲目地跟風。數據庫行業外表光鮮,實質苦逼,并沒有想象中的那么美好。第二是掌握好的學習方法,比如前面提到的通過博文分享形成自己的知識庫、向前輩取經、練習和總結并進等等。第三是遇到問題的求助方式,不要遇到問題就向別人請教,如果不經過自己的思考,那你的提升會非常的小。如果一定要求助,可以采用發帖或者跟技術大牛發郵件的形式,但請務必注意提問的方式,把遇到問題的原因、 什么條件下導致這樣的錯誤、出現錯誤的平臺、相應的錯誤信息和代碼說清楚,還需要注意郵件的格式和必需的禮節。做人做事不僅要讓自己舒服,更重要的是要讓別人舒服。第四是把基本功抓牢。有研究表明,很多非常成功的企業家以前賣過報,小時候形成的創業童子功對以后的發展起著至關重要的作用。某一個領域的基礎知識就是基本功,和童子功有著很類似的作用。地基不牢,何以成參天大樓。落實到實處,數據庫的經典書籍一定要找來讀讀,還有就是越是簡單的東西就越需要搞明白為什么。第五是不要好高騖遠。我在平時的求職過程中,看到很多公司開的薪資,有了2年經驗的月薪在2萬以上的不在少數。別人能開那么高的薪資,肯定你做的事對得起這份工資。薪資越高,責任也就越大。從另一方面講,腳踏實地才能在以后有所作為,當你有了能力,不愁薪資。昨天在微博上看到一句話,牛B的人才不用找工作,想想不無道理。第六是找到志同道合的好友,互相學習,這樣會得到很大的提高。比如我有幸結識[@林水彬](http://blog.csdn.net/dba_waterbin),在平時他給我很大的幫助,在此感謝!第七是找數據庫相關的工作不要氣餒,不要自暴自棄,也不要埋怨上天的不公,為什么這樣說呢?因為應屆畢業生找數據庫相關的工作還是相對困難的,一個經驗的硬性指標就會把你拒之門外。要相信凡事都是能者居之,你有能力,足夠好運,并且公司也愿意培養你,那恭喜你,堅持下去,前途一片光明。如果畢業不能馬上找到數據庫相關工作,可以先做其他行業,以后再考慮轉型。方向就在那里,總錯不了。希望本文能給讀者帶來丁點幫助。
**詩和遠方永遠存在。寫著驚世駭俗的詩,心系可以眺望的遠方,伴著沿途的風景,獨自前行。**
未完待續。
- (一)淺談幾種主要編程語言
- (二)今天你跑步了嗎
- (三)談時間
- (四)興趣是第一驅動力
- (五)謙遜才是王道
- (六)我們是需要團隊合作精神的
- (七)溝通交流、表達能力的重要性
- (八)懶人造就方法
- (九)分享是種美德
- (十)談項目管理
- (十一)我們是群居動物
- (十二)談信念
- (十三)我為什么不考研
- (十四)談態度
- (十五)談性格
- (十六)談習慣
- (十七)父母
- (十八)人活著,只是一種態度
- (十九)因為愛情
- (二十)沉思錄(一)關于博客和思想
- (二十一)我們的大學觀
- (二十二)《中國合伙人》聯想錄
- (二十三)做自己 最真實
- (二十四)寫在大三結束之際
- (二十五)情緒與生活
- (二十六)迷失的朋友
- (二十七)談談英語學習
- (二十八)寒門再難出貴子?
- (二十九)分享我的時間管理-半小時管理法
- (三十)近期微信公眾平臺更新文章集錦
- (三十一)人在囧途之應聘篇(一)
- (三十二)人在囧途之應聘篇(二)
- (三十三)人在囧途之應聘篇(三)
- (三十四)人在囧途之應聘篇(四)
- (三十五)人在囧途之應聘篇(五)
- (三十六)人在囧途之應聘篇(六)第一季終結篇
- (三十七)大學斷代史(一)開篇
- (三十八)大學斷代史(二)我與數據庫的故事
- (三十九)大學斷代史(三)我和知乎邂逅
- (四十)大學斷代史(四)我與博客
- (四十一)大學斷代史(五)我的娛樂方式
- (四十二)大學斷代史(六)我與圖書館
- (四十三)大學斷代史(七)在實驗室的日子與我的學業
- (四十四)大學斷代史(八)大學的友誼
- (四十五)大學斷代史(九)獨自南下的歲月
- (四十六)大學斷代史(十)給學弟學妹們的忠告-終結篇
- (四十七)工作三個月小結