有數(shù)據(jù)庫功底的(mssql/oracle/sybase)一天就能吃透,沒有數(shù)據(jù)庫基礎(chǔ)的話,恩,是要點時間的,如果你安裝了mysql 建議你用mysql搭建個服務(wù)器環(huán)境,學(xué)習(xí)時間一周差不多(前提:大學(xué)時考試都是考前一周才學(xué)習(xí)而且不掛科)
站在用戶的角度思考問題,與客戶深入溝通,找到偏關(guān)網(wǎng)站設(shè)計與偏關(guān)網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站制作、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋偏關(guān)地區(qū)。
對于非計算機(jī)出身的我,大學(xué)只會hello word和跑馬燈,期間過程確實非常曲折,分享下我的自學(xué)過程:
1、 自己在windows和linux上安裝了mysql,自學(xué)linux的基礎(chǔ)知識,學(xué)習(xí)mysql的最基礎(chǔ)的知識,即怎么寫sql,存儲過程,表的設(shè)計等,從0到熟悉大概花了3個月 ,推薦《mysql入門很簡單》。
2、系統(tǒng)地較為深入地學(xué)習(xí)mysql的sql優(yōu)化,備份和恢復(fù),參數(shù)優(yōu)化,架構(gòu)優(yōu)化,硬件層面的優(yōu)化,高可用方案,復(fù)制技術(shù)等等,這段時間你不一定能實際接觸到這些,就像我當(dāng)初那樣,肯定沒什么公司招一個小白。 我選擇自己看書,推薦《高性能mysql》,里面所有的章節(jié)都需要看一遍,以現(xiàn)在的水平肯定看不懂,但需要知道大概怎么回事,為后續(xù)的找mysql初級dba的工作打一個鋪墊,這個過程大概也需要3個月。
3、 紙上得來終覺淺,完成以上兩步,我開始準(zhǔn)備找一份mysql相關(guān)的工作,而不是天天用著excel表格做著select * from table_sb這樣的工作。 當(dāng)然我這么猥瑣的人肯定不會裸辭,該畫的電路板也一樣畫,業(yè)余時間開始投初級mysql dba的工作,并且不間斷地學(xué)習(xí),網(wǎng)上各種找mysql面試的相關(guān)題目(實際上我當(dāng)時完全沒有任何實戰(zhàn)經(jīng)驗),陸續(xù)收到一些面試,憑借之前自學(xué)的mysql知識,開始胡亂吹牛逼,先混進(jìn)去再說。 你不做mysql實際相關(guān)的工作,永遠(yuǎn)也不知道自己之前認(rèn)知的db知識有多幼稚。 友情提示一點,一般公司都沒有專職dba的,所以面試的時候一定要自信,其實你學(xué)了這么多,雖然毫無實戰(zhàn)經(jīng)驗,理論知識很大概率比面試你的人牛逼,所以各種吹,我就這樣真正進(jìn)入初級dba的圈子(由于這時對linux還處于cd ls的水平,所以之前也根本沒做過運維),這個邊工作邊找工作的過程又持續(xù)了2個月。
4、真正進(jìn)入互聯(lián)網(wǎng),接觸生產(chǎn)環(huán)境后,這是我進(jìn)步最大的時候。 第一步需要將之前所學(xué)真正地應(yīng)用起來,并且應(yīng)用的過程中,再回頭看之前的書籍,這時候需要真正去理解,而不是似是而非,一知半解。 這時再推薦《高性能mysql 第三版》,全本再看一遍,這時需要全部看懂,另外還有《mysql技術(shù)內(nèi)幕:innodb存儲引擎》等等。 總之這段時間就需要開始關(guān)注mysql一些細(xì)節(jié)了,比如db故障處理,高可用,負(fù)載均衡等等的具體實現(xiàn)了。 另外,linux的知識同步也要深入去學(xué)習(xí),至少會寫shell腳本,常見的linux知識等,我在這花了1年多;
5、 dba的工作一般是非常輕閑的,畢竟不是大公司,技術(shù)能力有限,該學(xué)的也學(xué)得差不多了,接觸不到海量數(shù)據(jù),高并發(fā)等比較鍛煉人的場合,于是我又準(zhǔn)備跳了。 于是來了公有云,現(xiàn)在每天運維萬多個db實例,平均每天處理5+個緊急db故障,幾乎mysql會遇到的問題,感覺都遇到了,能感覺到技術(shù)實力和經(jīng)驗也在每天都在積累,在進(jìn)步。 但是感覺還是欠缺了很多,下一步就看你選擇了,是再去研究源代碼,底層原理的東西多點,還是數(shù)據(jù)庫運維和應(yīng)用多一點,就比如業(yè)界姜承堯,何登成與葉金榮的區(qū)別。 由于我的歷史原因,對c++等幾乎不懂,平時也用不到,所以看代碼等事實際太累,于是我再去學(xué)mongodb,接了公司mongodb運維的活,算是在廣度上的一個擴(kuò)展,萬一哪天mysql不行了呢
6、 總之,對于db小白來說,最重要的一點就是,學(xué)習(xí)的過程不能斷。 PS 上面的方法比較野路子,適合沒什么基礎(chǔ)的童鞋,如果本來就是DBA,比如從oracle轉(zhuǎn)到mysql,那么建議直接看mysql官方文檔,而官方文檔是db達(dá)到一定水平后必看,出問題時必查的權(quán)威文檔。
一、熟悉MySQL的運行環(huán)境
MySQL數(shù)據(jù)庫是在Linux環(huán)境下運行的,建議先熟練Linux系統(tǒng)。選定好架構(gòu)模式之后就可以開始進(jìn)入程序開發(fā)和數(shù)據(jù)處理的環(huán)節(jié)。
二、有扎實的數(shù)據(jù)庫理論知識
MySQL作為關(guān)系型數(shù)據(jù)庫,在實際的應(yīng)用中也要學(xué)會分析存儲數(shù)據(jù)的關(guān)系型數(shù)據(jù)結(jié)構(gòu),關(guān)系操作集合等。只有對這些內(nèi)容有一個明確的認(rèn)識,在設(shè)計數(shù)據(jù)庫字段、表與表的關(guān)系才能考慮周全,避免出現(xiàn)錯誤。
三、熟練的SQL語言運用
任何一種數(shù)據(jù)庫的學(xué)習(xí),包括MySQL,SQL語句都是位于核心部分的內(nèi)容。需要注意的是SQL語言的使用要力求簡明扼要,能用一個select搞定的問題并不需要寫更多的union。所以在SQL語言的應(yīng)用方面要注意高效。