小白學(xué)MySQL要多久?我整理了10多個(gè)問題的答案
這是一個(gè)偶然碰到的問題,想想蠻有意思,就準(zhǔn)備寫一篇文章做下分析。
首先啰嗦下學(xué)習(xí)MySQL的一些背景:MySQL作為目前最為活躍熱門的開源數(shù)據(jù)庫之一,以低成本和簡(jiǎn)易操作的組合方案在互聯(lián)網(wǎng)企業(yè)中被廣泛采用而大放異彩。在炙手可熱的BAT中,MySQL正被大量使用。顯然,對(duì)于想在互聯(lián)網(wǎng)行業(yè)大展手腳的數(shù)據(jù)庫工程師和DBA們,熟練的MySQL技術(shù)無疑是一塊很好的敲門磚。
而在云時(shí)代,運(yùn)維的理念發(fā)生了很大改變,隨著數(shù)據(jù)庫自動(dòng)化運(yùn)維智能運(yùn)維的興起,也促使DBA要站在更高層面來看待數(shù)據(jù)庫,看待運(yùn)維,看待IT,否則就會(huì)成為被機(jī)器人替代的炮灰。
首先我們所理解的小白和實(shí)際情況的是不大一樣的,每個(gè)人的情況不同,目前我碰到較多的情況,一般以小白自稱的人基本有以下三類:
- 求職儲(chǔ)備(無工作經(jīng)驗(yàn))
沒有相關(guān)經(jīng)驗(yàn),還沒有走上工作崗位,只是對(duì)于MySQL感興趣或者好奇。
- DBA萌新(較少工作經(jīng)驗(yàn))
剛?cè)胄械男率?,或者有少量?jīng)驗(yàn)的DBA新人,經(jīng)常會(huì)發(fā)現(xiàn)工作中的和書上說的不一樣
- 工作中會(huì)用到(有工作經(jīng)驗(yàn))
可能是研發(fā)類的同學(xué),有一定工作經(jīng)驗(yàn),工作中要用到MySQL技術(shù),只是簡(jiǎn)單用,想深入學(xué)習(xí)一下
所以針對(duì)不同的人群,回答也不盡相同,對(duì)此我做了梳理,我覺得可以把這個(gè)問題轉(zhuǎn)換為另外一個(gè)問題:
學(xué)習(xí)MySQL要學(xué)些什么,需要注意些什么?
整體來說我會(huì)用如下的方式來闡述常見問題
- MySQL學(xué)習(xí)周期和難度應(yīng)該怎么理解?
- MySQL知識(shí)體系是什么,應(yīng)該包括哪些知識(shí)層面?
- MySQL推薦的書和資料有哪些?
然后其余的部分會(huì)分為不同的人群來進(jìn)行闡述。
1)求職儲(chǔ)備類常見問題
- MySQL的認(rèn)證考試值得考嗎?含金量有多大?
- 從事DBA崗位,選MySQL還是Oracle?
2)DBA萌新類常見問題
- 從事DBA崗位,選MySQL還是Oracle?
- MySQL DBA高工資的原因
- DBA工程師模型應(yīng)該是什么樣的?
3)有工作經(jīng)驗(yàn)類常見問題
- 個(gè)人職業(yè)發(fā)展如何完成向MySQL的轉(zhuǎn)型?
小白通用類問題
問題1:MySQL學(xué)習(xí)周期和難度應(yīng)該怎么理解
通常對(duì)于學(xué)習(xí)周期和難度,大家是很關(guān)心的,但是我們很難去量化一個(gè)度,所以我們可以參考比較成熟的商業(yè)數(shù)據(jù)庫作為參考,來對(duì)比MySQL學(xué)習(xí)的一些特點(diǎn)。
從技術(shù)棧上來說,MySQL的入門周期相對(duì)要短,學(xué)習(xí)難度要更容易,但是要深入發(fā),因?yàn)殚_源和社區(qū)的原因,發(fā)展空間則更大。當(dāng)然除這個(gè)維度之外,MySQL DBA的“錢途”從市面需求來說也要好一些。
問題2:MySQL知識(shí)體系是什么,應(yīng)該包括哪些知識(shí)層面?
從我的理解中,我把MySQL技術(shù)分為了三個(gè)層面,運(yùn)維管理,架構(gòu)優(yōu)化和運(yùn)維開發(fā)
運(yùn)維管理主要就是基礎(chǔ)運(yùn)維的工作(安裝部署,備份恢復(fù),權(quán)限管理之類的工作)和一些變更類管理和規(guī)范操作(在線變更,數(shù)據(jù)庫復(fù)制,SQL規(guī)范等工作),這部分工作上手較快
架構(gòu)和優(yōu)化設(shè)計(jì)的工作面比較寬,而且技術(shù)要求有一定的深度,我把它分為SQL查詢優(yōu)化,事務(wù)和鎖,MySQL集群和高可用技術(shù),分布式數(shù)據(jù)庫架構(gòu)等。這部分工作中對(duì)于很多開發(fā)同學(xué)而言更關(guān)注查詢優(yōu)化,而對(duì)于DBA從初級(jí)走向中高級(jí),則需要關(guān)注,相關(guān)的鎖機(jī)制,和集群,高可用相關(guān)技術(shù)。
運(yùn)維開發(fā)的工作不是簡(jiǎn)單的數(shù)據(jù)庫自動(dòng)化運(yùn)維,而是分為應(yīng)用層和內(nèi)核層,我們常說的運(yùn)維開發(fā)是偏向于應(yīng)用層的,比如數(shù)據(jù)庫管理工具等,而內(nèi)核層,比如開發(fā)數(shù)據(jù)庫中間件,SQL審核工具等,需要掌握源碼開發(fā)能力。
我的新書里面整理了幾個(gè)腦圖,可以作為參考。
其實(shí)不管如何改變,MySQL 在人這一塊的一種核心競(jìng)爭(zhēng)力依舊不變,那就是優(yōu)化能力。這個(gè)優(yōu)化范疇不單指原來的硬件選型等層面的優(yōu)化,更多的過渡到了架構(gòu)設(shè)計(jì)優(yōu)化和應(yīng)用層面的優(yōu)化。優(yōu)化能力是DBA職業(yè)生涯中的持久生命力,是重新審視自我、提升自我的一個(gè)必備武器,優(yōu)化能力不是短期能夠?qū)W成的,而是更多和個(gè)人的學(xué)習(xí)能力和實(shí)踐情況緊密結(jié)合起來的,簡(jiǎn)單來說,和你解決問題的數(shù)量呈一定的線性關(guān)系。
問題3:MySQL推薦的書和資料有哪些?
簡(jiǎn)單來說,官方文檔是最好的學(xué)習(xí)資料,在這個(gè)基礎(chǔ)上去閱讀更多的書籍會(huì)起到融會(huì)貫通的作用。如果推薦書籍,我有下面的一個(gè)讀書清單可供參考。
入門:
《MySQL數(shù)據(jù)庫應(yīng)用從入門到精通(第2版)》
《MySQL核心技術(shù)手冊(cè)》
《MySQL技術(shù)內(nèi)幕(第5版)》
運(yùn)維實(shí)踐:
《高性能MySQL》 經(jīng)典必讀
《MySQL管理之道:性能調(diào)優(yōu)、高可用與監(jiān)控(第2版) 》賀春旸
《深入理解MySQL核心技術(shù)》帕奇維
《MySQL運(yùn)維內(nèi)參》 周彥偉、王竹峰、強(qiáng)昌金
《深入淺出MySQL》網(wǎng)易團(tuán)隊(duì)出品
《MySQL DBA工作筆記》楊建榮
內(nèi)核:
《MySQL技術(shù)內(nèi)幕:InnoDB存儲(chǔ)引擎(第2版)》姜承堯
《InnoDB - A journey to the core》Jeremy Cole
一.求職儲(chǔ)備類常見問題
問題1:MySQL 的認(rèn)證考試值得考嗎?含金量有多大?
MySQL的認(rèn)證目前只有MySQL OCP,目前和Oracle OCP相比,資料和套路都會(huì)少一些??歼@個(gè)認(rèn)證,你得明白幾件事情:
認(rèn)證里的內(nèi)容和工作的內(nèi)容還是有一些差別的,在MySQL里面尤其如此,因?yàn)殚_源的方案非常多,很多優(yōu)秀的工具不僅僅是官方的;
考過了認(rèn)證不一定代表了你是一個(gè)數(shù)據(jù)庫專家,因?yàn)閷?shí)踐出真知,很多技能都是在工作中培養(yǎng)和鍛煉出來的,考試有分?jǐn)?shù)控制,達(dá)標(biāo)即合格,而工作中99%的努力加1%的錯(cuò)誤那就是失敗;
考取認(rèn)證不能指望企業(yè)給你升職加薪,如果有的話,那么恭喜你;
學(xué)習(xí)的過程相比考試結(jié)果來說,對(duì)自己的啟示意義更大,因?yàn)槟玫秸J(rèn)證是對(duì)你學(xué)習(xí)過程的肯定;
最后一點(diǎn)MySQL OCP報(bào)名費(fèi)相比Oracle OCP低不少,價(jià)格還算親民。
問題2:從事DBA崗位,選MySQL還是Oracle?
有句話說,選擇的利劍屬于在于能夠揮舞它的人,根據(jù)工作需要,自己的喜好去選擇就可以,如果只是本著錢途是不推薦的。如果非要糾結(jié)到底是哪一個(gè),其實(shí)也可以換個(gè)角度,如果兩個(gè)都學(xué),是不是這個(gè)問題就不是問題了。
二.DBA萌新類常見問題
- 從事DBA崗位,選MySQL還是Oracle?
- MySQL DBA高工資的原因
- DBA工程師模型應(yīng)該是什么樣的?
問題1:MySQL DBA高工資的原因
因?yàn)槭呛蚈racle來對(duì)比,可以分為幾個(gè)方面來看:
- 首先物以稀為貴,MySQL DBA相對(duì)Oracle DBA來說要少一些,隨著現(xiàn)在互聯(lián)網(wǎng)行業(yè)的發(fā)展,這個(gè)需求還是會(huì)持續(xù)增長;
- 第二還是物以稀為貴,任何工種,高級(jí)職位都是稀缺的,如果你能夠成為行業(yè)內(nèi)的20%的人,無論你是從事哪種數(shù)據(jù)庫,都會(huì)混得還不錯(cuò)。
- 第三還是物以稀為貴,什么事物的發(fā)展都有一個(gè)成熟度曲線,水漲船高之后,留在你手里的是真技能還是花拳繡腿,數(shù)據(jù)庫的功能會(huì)越來越豐富,你的技能也要升級(jí),不升級(jí)的話,用哪個(gè)數(shù)據(jù)庫你都會(huì)很吃力。
問題2:DBA工程師模型應(yīng)該是什么樣的?
我眼中的工程師模型是這樣的,簡(jiǎn)單三個(gè)特征:鷹眼(眼光犀利),獅心(內(nèi)心強(qiáng)大),繡花手(做事認(rèn)真細(xì)致)。
三.有工作經(jīng)驗(yàn)類常見問題
問題1:個(gè)人職業(yè)發(fā)展如何完成向MySQL的轉(zhuǎn)型?
從自身目前從事的工作,分三種情況來看:
(1)目前從事的工作以商業(yè)數(shù)據(jù)庫Oracle為主,又想轉(zhuǎn)型為MySQL DBA的:
自搭環(huán)境學(xué)習(xí)實(shí)踐是一個(gè)起步,如果覺得沒有明確的學(xué)習(xí)目標(biāo),考個(gè)MySQL OCP也是一種階段性的學(xué)習(xí)成果驗(yàn)收,總比漫無目的的學(xué)習(xí)收獲要大。已經(jīng)有了Oracle基礎(chǔ),可以通過對(duì)比的方式來引入到MySQL的學(xué)習(xí)中。公司如果后期引入MySQL方案,你就是最佳人選了。
(2)目前工作中有MySQL環(huán)境的:
在做好本職工作的前提下,可以自薦,讓別人推薦來做MySQL DBA的工作。對(duì)企業(yè)和你個(gè)人都是雙贏,所以開發(fā)測(cè)試運(yùn)維同學(xué)想做MySQL DBA也是可以的。
(3)現(xiàn)有的MySQL工作和自身期望相比差距較大的:
一種方式是自查,我們?cè)诋?dāng)前的環(huán)境還能夠做出些什么,如果能夠把當(dāng)前的環(huán)境做到精細(xì)化的管理,總會(huì)有非常多的事情和收獲,還有一種方式就是跳槽,這個(gè)的前提也是你在儲(chǔ)備了很多的技能之后,因?yàn)闄C(jī)會(huì)是留給有準(zhǔn)備的人。