做者:姜健
連接:https://www.zhihu.com/question/34840297/answer/67536521
來源:知乎
著做權歸做者全部,轉載請聯繫做者得到受權。
本人是個活生生的例子,大學學的儀器儀表專業,12年畢業後第一份工做是電路板測試。因爲項目中接觸到了數據庫的東西,純粹當高級點的excel表格用的。
當時有點興趣,沒參加過培訓,0基礎自學mysql和linux,現任國內某公有云mysql &&mongodb dba。
對於非計算機出身的我,大學只會hello word和跑馬燈,期間過程確實很是曲折,分享下個人自學過程:
一、 本身在windows和linux上安裝了mysql,自學linux的基礎知識,學習mysql的最基礎的知識,即
怎麼寫sql,存儲過程,表的設計等,從0到熟悉大概花了3個月 ,推薦
《mysql入門很簡單》。
二、系統地較爲深刻地學習
mysql的sql優化,備份和恢復,參數優化,架構優化,硬件層面的優化,高可用方案,複製技術等等,這段時間你不必定能實際接觸到這些,就像我當初那樣,確定沒什麼公司招一個小白。
我選擇本身看書,推薦
《高性能mysql》,裏面全部的章節都須要看一遍,以如今的水平確定看不懂,但須要知道大概怎麼回事,爲後續的找mysql初級dba的工做打一個鋪墊,這個過程大概也須要3個月。
三、 紙上得來終覺淺,完成以上兩步,我開始準備
找一份mysql相關的工做,而不是每天用着excel表格作着select * from table_sb這樣的工做。
固然我這麼猥瑣的人確定不會裸辭,該畫的電路板也同樣畫,業餘時間開始投初級mysql dba的工做,而且不間斷地學習,網上各類找mysql面試的相關題目(實際上我當時徹底沒有任何實戰經驗),陸續收到一些面試,憑藉以前自學的mysql知識,開始胡亂吹牛逼,先混進去再說。
你不作mysql實際相關的工做,永遠也不知道本身以前認知的db知識有多幼稚。
友情提示一點,通常公司都沒有專職dba的,因此面試的時候必定要自信,其實你學了這麼多,雖然毫無實戰經驗,理論知識很大機率比面試你的人牛逼,因此各類吹,我就這樣真正進入初級dba的圈子(因爲這時對linux還處於cd ls的水平,因此以前也根本沒作過運維),這個邊工做邊找工做的過程又持續了2個月。
四、真正進入互聯網,接觸生產環境後,這是我進步最大的時候。
第一步須要
將以前所學真正地應用起來,而且應用的過程當中,再回頭看以前的書籍,這時候須要真正去理解,而不是似是而非,只知其一;不知其二。
這時再推薦
《高性能mysql 第三版》,全本再看一遍,這時須要所有看懂,另外還有
《mysql技術內幕:innodb存儲引擎》等等。
總之這段時間就須要
開始關注mysql一些細節了,好比
db故障處理,高可用,負載均衡等等的具體實現了。
另外,
linux的知識同步也要深刻去學習,至少會寫shell腳本,常見的linux知識等,我在這花了1年多;
五、 dba的工做通常是很是輕閒的,畢竟不是大公司,技術能力有限,該學的也學得差很少了,接觸不到
海量數據,高併發等比較鍛鍊人的場合,因而我又準備跳了。
因而來了公有云,如今天天運維萬多個db實例,平均天天處理5+個緊急db故障,幾乎mysql會遇到的問題,感受都遇到了,能感受到技術實力和經驗也在天天都在積累,在進步。
可是感受仍是欠缺了不少,
下一步就看你選擇了,是再去研究源代碼,底層原理的東西多點,仍是數據庫運維和應用多一點,就好比業界姜承堯,何登成與葉金榮的區別。
因爲個人歷史緣由,對c++等幾乎不懂,平時也用不到,因此看代碼等事實際太累,因而我再去學mongodb,接了公司mongodb運維的活,算是在廣度上的一個擴展,萬一哪天mysql不行了呢
六、 總之,對於db小白來講,最重要的一點就是,
學習的過程不能斷。
PS 上面的方法比較野路子,適合沒什麼基礎的童鞋,若是原本就是DBA,好比從oracle轉到mysql,那麼建議直接看mysql官方文檔,而官方文檔是db達到必定水平後必看,出問題時必查的權威文檔。
文章源自知乎,僅供學習參考