專精 Oracle 還是 MySQL?
本人大四男吊,有 MySQL,Oracle 基礎,聽說 Oracle 跟 MySQL 今夕二八開,即占 80% 市場份額的 20% 大型互聯網公司用的是 Oracle,提供精確數據云服務端;20% 市場份額 80% 中小型互聯網公司依賴於 MySQL,物美價廉還開源。直覺告訴我要學 Oracle,理由是中小型互聯網未來會趨於統一,形成三分天下格局(三國迷),即大企業,大企業 = Oracle,求大神指點迷津毀我三觀。
首先,承認你提供的數據基本準確。但大多數大型互聯網公司並不一定都是使用Oracle,他們會把部分業務部署到Oracle上,主線業務很可能還是MySQL,或者是基於MySQL二次開發的資料庫。比如淘寶有淘寶MySQL(淘寶甚至還有OceanBase),騰訊有TMySQL。再說MySQL陣營的還有Percona Server,Mariadb等等,這些資料庫也有很好的性能。未來的互聯網會更多的使用No SQL技術,比如MongoDB等等,還會使用大數據平台,比如Hbase、Hadoop等等。
至於專精MySQL還是Oracle,個人認為沒有確切的答案。第一點,真正的資料庫大牛是無所謂資料庫,精通MySQL的在Oracle上的造詣不見得低,反之亦然。資料庫技術大體上都是融會貫通的,精通一個,其他雖有不同,但思路大體相同。第二點,Oracle目前還是傳統企業使用較多,很難撼動Oracle在這些行業的地位,而且這些行業也很難實現去O。第三點,Oracle現在已經過了發展的黃金時期,相反,MySQL、NoSQL、大數據平台等正是蓬勃的發展時期,充滿太多的機遇和挑戰。這些技術基本上都是開源,對於自己的提升往往比封閉的東西更多。
至於你提到的大企業=Oracle,個人認為不能完全劃等號,這取決於公司的性質。Google是大企業,請問它用了Oracle嗎?
我沒有給你明確答案,但從字裡行間相信題主明白我的傾向。
Good Luck!mysql跟oracle簡直就是塑料刀和電鋸的差別,你根本就不需要在這兩者之間糾結。倘若你糾結的是mssql和oracle說不定還有點意義。
還有,不管你學的是什麼sql,剛開始的時候都是差不多的,一定要把group by、partition和index的各種神奇用法搞明白,不然用哪個都要傻逼。能不能寫出一手好sql的分水嶺就在這裡了,用資料庫的時候,很多問題其實都是因為程序員不會寫靠譜的sql,從而別人需要改架構去適應這些低sql水平程序員,然後才弄出翔的。
題主是這是要當DBA的節奏啊,雖然會寫好的SQL是優秀DBA應該具有的素質,但是不是DBA的核心任務啊。開發人員來說SQL肯定都要會的,DBA SQL也肯定要回,但是DBA的核心知識在於安裝配置資料庫 資料庫管理 數據備份 性能優化,故障處理。對於開發人員來說,只要不涉及存儲過程,SQL語句大同小異,無非就是幾個函數不一樣。對於DBA來說,這就是完全不同了,每種資料庫架構都差別都挺大的,說實話,oracle和DB2很多相同東西,設計理念都有差異。mysql集群的話,性能也嚇人的。oracle確實用的最多。大國企 銀行 煙草 電信不少用oracle的,也有很多銀行用DB2的。MySQL DBA也比較缺有經驗的人。其實不太好比較。
不過就學習而言,推薦oracle,因為oracle比較難(其實我覺得DB2更難,而且文檔資料少),你這個水平吧,先學oracle運維管理,學大概3個月吧,如果轉MySQL也容易。因為MySQL體系相對簡單,而且一般中小互聯網公司不會對新入行的mysql DBA要求太高。
所以建議你先帶著學oracle,然後看看行情,打算oracle,就下點本錢考個OCP吧,順帶拿個RHCE吧。。。。如果不打算搞oracle,你有這個基礎轉mysql也不難反正。當然有受虐傾向請選擇學習DB2,DB2的DBA好像才是供不應求不要討論哪個好,只要你學的好,哪個都好。
我沒做過mysql,我從大一的時候確定自己要做oracle dba,畢業一年以後考的ocm,在大連這樣二三線的城市,oracle dba的需求還是少一些。所以做了兩年的oracle開發。現在跑到上海做dba。
--------------------------------------------
更一個,現在回大連了,工資跟上海持平,做oracle,兼顧mysql的research工作。我們領導心真大,敢讓一個不會mysql的dba做mysql。不過說過來,日常操作上手不算特別難。你到底想做什麼呢?DBA么…… 你說的「專精」,是要怎麼個專精法?DBA需要很多經驗的積累,看你還沒工作,想專也很難專起來吧,沒遇到過的情況,靠想像是難以模擬的。如果是一般程度上的學習,完全可以兩個都學嘛。接觸了解下各自的優缺點,了解資料庫設計的一般思路,看看MySQL 以及別的一些開源資料庫的源碼。很多東西是相通的嘛。就資料庫來說,Oracle強於MySQL這毋庸置疑,但是也並不是哪個強就通吃市場。而且人無百日好啊,來日方長呢,你怎知道Oracle 就萬古長青了,萬一被更好的給替代了呢?如果你把自己弔死在一棵樹上,那到時不是很尷尬?
看來職業規劃是DBA?現實一點的建議是找到哪個干哪個。非要分析的話:用mysql的公司,一般而言都用的是開源架構,技術背景更濃厚一些,即大量應用是自開發的。這可能要求你其他方面的實力多少要具備,比如java、php之類的語言。
用oracle的公司,普遍來說,其應用可能是買來的產品,會相對輕鬆一些。
所以建議盡量oracle。不贊同語言都是相通的,資料庫都是相通的之類的論調。就mysql和oracle而言,大公司和對可靠性、安全性要求比較高的系統用oracle很多,畢竟有甲骨文強力的支持,mysql在小公司、小項目、互聯網非最核心數據中應用較多。但就資料庫本身功能、可靠性而言,oracle完爆mysql。mysql開源的性質使得其有較強的定製型,還有就是免費,像淘寶所有系統都用oracle在license上估計會嚇壞一大堆人。根據自己需要選擇吧
Twitter Quora FB等等都是MySQL,所以我不是非常明白20/80的劃分怎麼來的,大型互聯網公司80%在用Oracle對我來說有點毀三觀。目前的大概趨勢是UGC用關聯資料庫較多,非UGC又對大數據量有需求的在往NoSql方向走,但是傳統NoSql也有些問題難以克服,可以看看這個
Why Does Quora Use MySQL as the Data Store Instead of NoSQLs Such as Cassandra, MongoDB, or CouchDB?目前表現最好的其實是PostgreSQL,帶Document支持,平衡兩者關係。至於樓主要學什麼,主要看你在ORM哪一邊。對於大部分程序員來講關聯型資料庫什麼的用起來都差不多,精力花在別的地方更有用。不過如果你正好對資料庫感興趣,趁熱打鐵選一種深入了解,我推薦Postgres,非要二選一就是MySQL。我在工作中用過mssql, mysql和oracle.個人感覺來說,mssql和oracle的性能和功能明顯比mysql強太多了。mssql要比oracle容易上手。
我個人建議是:MySQL,但是Oracle也要很懂。
Oracle是業界標杆,Oracle有大量資料學習,但Oracle很多內部優質的資料你是拿不到的,所以當你發展到達一定瓶頸之後,就是發現,你能在Oracle 上層做的東西越來越少(部分原理涉及商業機密),反而MySQL開源,特別是在水平分庫上,MySQL做的還是相當棒,相對於Oracle,MySQL體積更小,學習周期相對更短,比如:MySQL 的優化器很水(同比Postgre SQL都有很大差距)。
要說到精通,可以分為橫向或者縱向,如下:
PS: 大數據 主要是針對水平分庫等
無論是橫向還是縱向,只要是精通價值都會很大。
據我觀察,甭管大學生覺得自己多會寫sql,見到工程級別的sql都看不懂。更別說存儲過程了,書上寫的和實際的差太多了。
學生的話,其實無論你怎麼專註,沒運維經驗,深度有限。個人建議你兩個一起學,互相對比來學習其實也不會太難,工作後看環境再決定。兩個資料庫都玩的來的dba很多,還是看工作環境吧。
先說背景啊,做過關於DB2,ORALE,MySQL資料庫的一些方面的東西,個人覺得,本質上來說,在了解基本的情況上,再根據你的項目(工作)去做一些努力,就可以了,當然你無法預測你的工作是什麼樣的,但是學無止境的,你多學一點,是沒有錯的。
都學吧,oracle、mysql、大數據都要學,當一個數據工程師更有前途。比如我公司,有業務系統是mysql,有業務系統是oracle,難道公司要招聘兩個dba?不可能嘛,領導不覺得搞oracle的搞不了mysql,不過麻雀雖小,五臟俱全,搞oracle的想輕鬆吃定mysql,恐怕沒那麼容易,還是需要老老實實積累經驗。
MySQL吧,如果你有能力,可以讓公司把需要花到Oracle上的錢加到你工資里……
建議跳出書本、學校這個小圈子,了解一下Nosql。
MariaDB 值得信賴
對於 "即占 80% 市場份額的 20% 大型互聯網公司用的是 Oracle"
google、facebook、阿里......在啪啪打臉
聽誰過的???
占 80% 市場份額的 20% 大型互聯網公司用的是 Oracle
我覺得兩個都學一下好一些
推薦閱讀:
※哪些互聯網公司的資料庫是選擇Oracle的,為什麼?
※學習 Oracle 和 MySQL 哪個更有前途?
※想非常精通資料庫的話需要哪方面數學?
※同一台伺服器上裝MySQL和oracle會有衝突么?
※爬蟲的資料庫選型,redis, leveldb, mongodb, mysql 選哪個?