強烈推薦:程式設計師必須懂的資料庫知識

Python之禪發表於2018-11-13

如果要我選擇一門程式設計師必備的技能,那答案無疑是資料庫,而 MySQL 是首選。為什麼說資料庫每個程式設計師都必須掌握的技能?


長江後浪推前浪,前浪被拍死在沙灘上,程式設計師壓力非常大,稍不努力就被年輕人拍死了。所以我們要不斷學習,而資料庫是最保值的知識之一,不像你學框架,一兩年就過時了,即使是程式語言,也有過時的時候,新語言層也出不窮,誰又知道 Python 能流行多久呢?


而資料庫特別是關係型資料庫一直沿用到今天,特別是開源的MySQL,被 Google、Facebook、阿里等眾多大廠發揚光大。90% 的網際網路公司都在使用 MySQL。即使 Redis、MongoDB 這類新型資料庫出來,沒無法代替傳統的關係型資料庫,因為這類 NoSQL 資料庫僅僅只是解決某一類問題,並不是通用型資料庫,而 MySQL 這樣的關係型資料庫就是對世界的抽象。


作為後端工程師,如果你不懂資料庫根本不能稱之為後端工程師,因為沒有哪個後端工程師是不需要和資料庫打交道的。而作為一名優秀後端工程師,對資料庫一定是非常熟悉的,我們知道絕大部分業務效能瓶頸都來自資料庫層,能否寫出高效的 SQL 是提高效能的關鍵手段之一,遇到響應慢請求,你是否有分析定位問題的能力,為什麼慢,怎麼定位慢查詢,怎麼用 Explain 來優化你的查詢,什麼樣的索引才能發揮作用,什麼時候做分表分庫,怎麼分,怎麼做主從分離,資料如何備份,怎麼搞分散式資料庫,分散式事務怎麼弄,如果這一系列問題都有完備的解決方案,恭喜你,你離一名真正的構架師很近了。


可能有些人要反駁我,專業的事情交給專業人去做就好了,資料庫就交給 DBA 得了。如果其它能力同等的情況下,老闆是更喜歡精通資料的你還是別人。


前端工程師有沒有必要學習資料庫呢?看個人吧,如果你只是滿足於寫寫介面,拖拖控制元件也不是不可以,但凡事有點追求的程式設計師對知識的渴望是沒有上限的。如果你想往全棧發展,要是連個資料庫都不懂,也不好意思說是全棧對吧。如果自己想做個 side project,懂資料庫,懂Linux,至少不求於人了。


而測試人員、資料分析、做爬蟲更是離不開資料庫。


把資料庫學好,跳個槽漲個 50% 薪水沒問題吧,至少面試的時候可以更加硬氣一點,談薪水也更有底氣。關於資料庫的學習資料,網上資源不少,但是很多資料其實非常老舊,特別是一些面試題,還停留在5.1,5.2 的版本,現在 MYSQL 都發展到了 8.0 了,很多東西早就過時了,如果還是拿著網上別人幾年前總結的那套來忽悠面試官,就回家等通知吧。

640?wx_fmt=jpeg


所以,今天我要推薦一個 MySQL 的專欄給你 《MySQL實戰45講》,平時我很少推薦專欄課程,因為有些課程不一定適合你,而這個專欄是真正能幫助大家漲薪的一門專欄。在你同事中,如果你對 MySQL 特別瞭解的話,你就是前 TOP20 的人,公司不給你加薪給誰加呢。


無論你學不學這個專欄,但一定要學把資料庫學好,把 MySQL 學好,去哪家公司都用得著。

640?wx_fmt=jpeg

相關文章