一文告訴你全世界最頂級的開發者都在使用什麼數據庫

作為一名IT行業從業者,其實從去年已經隱隱約約感覺到數據庫的有變化,只是沒有想到變得這麼快。今年的一些事情實實在在地給了某些數據庫重擊,如果以前去某數據庫還是喊喊,然後該用還用,今年從傳統領域颳起的去某數據庫的風,已經開始了,並且後面的烏雲密佈也看得見。

最近看一篇國外的開源產品提供廠商的一篇文字,主要是在詢問了他的幾百位客戶後得出了下圖中的2019年數據庫的使用趨勢。

一文告訴你全世界最頂級的開發者都在使用什麼數據庫

從圖中可以看出,MySQL以38.9%的使用率高居榜首,其次是MongoDB(24.6%)、PostgreSQL(17.4%)、Redis(8.4%)和Cassandra(3.0%)。在這些數據庫中,Oracle僅佔1.8%,而CouchDB、Berkeley DB、Microsoft SQL Server、Redshift、Firebase、Elasticsearch 整合後的影響力和用戶的總和僅為2.4%。

但該調查報告卻與DB-engine排名趨勢流行度報告大相徑庭,Oracle數據庫在此報告中排名第一,不過筆者認為,任何文字都是可能是偏頗或有傾向性的,每個人看完後都可能有自己的想法,或認同或反對,就如同最近最熱的一句話“人心中的成見是一座大山,任你怎麼努力休想搬動”。

一文告訴你全世界最頂級的開發者都在使用什麼數據庫

一文告訴你全世界最頂級的開發者都在使用什麼數據庫

MySQL 仍然是排名第一的免費開源數據庫,佔開源數據庫使用量的 30% 以上。這並不奇怪,根據 DB-Engines,MySQL 多年來一直保持在這個位置。根據筆者多年來的從業經驗,我認為MySQL數據庫確實配得上這個排名,原因如下。

1.完全開源

MySQL最強大的優勢之一在於他的數據庫管理系統(DBMS,Database Management System)是一個開源系統。當然,開源並不意味著免費,它還是有許多付費功能。但是開源的特點給予用戶可以根據自己需要修改DBMS的自由。 MySQL採用了GPL(General Public License),這意味著授權給用戶可以閱讀,修改和優化源代碼,這樣即使是免費版的MySQL的功能也足夠強大。這也是MySQL如此受歡迎的原因之 一。

2.快速更新和用戶友好

在其他數據庫(例如Orcale、MSSQL Sever)更新緩慢的時候,MySQL很少讓他的用戶等待。每當新的版本出來之後,MySQL都會成為大多數服務器的主要數據庫。Linux web服務器已經成為現在web服務器的主流,MySQL在linux服務器上面也得到了廣泛的應用。

3.WebsitePanel,phpMyAdmin 和MySQl的黃金組合

對於初學者來說,通過虛擬主機商提供的websitepanel控制面板學習MySQL是一個很不錯的方法。用戶不僅可以觀看很多視頻教程來學習使用 MySQL,還可以使用PhpMyAdmin通過web方式管理數據庫。

PostgreSQL 以 13.4% 的開源數據庫用戶比例位居第二,緊隨其後的是 MongoDB,佔 12.2%,位列第三。

如果你經常光顧某些網站,或者大型公眾號,你應該知道今年最熱的事情有兩個,postgresql和大數據,今年算是postgresql在中國的開始發展的元年,知道的人和使用的人也越來越多。

一文告訴你全世界最頂級的開發者都在使用什麼數據庫

根據DB-engine數據庫流行榜發佈的數據顯示,Oracle與MySQL與去年相比都產生了一定的退步,唯獨postgresql呈現上升趨勢,比去年同月份提高了85.18%,這進一步說明數據庫領域正在湧現出更多的新生力量,與之前將所有雞蛋都放在一個籃子裡的傳統策略相比,IT行業的工作者正在使用多種數據庫來支持他們的產品,多數據庫類型的使用在過去10年出現了爆炸式增長。

在我們的調查中,幾乎有一半實際上使用不止一種類型的數據庫來支持他們的應用程序,而不是單個數據庫,使用多個數據庫的比例為44.3%,使用一個數據庫的比例為55.7%,他們喜歡的數據庫組合如下。

一文告訴你全世界最頂級的開發者都在使用什麼數據庫

現在,讓我們仔細研究一下在單個應用程序中最常用的數據庫類型。

在下面的圖表中,左邊列中的數據庫表示該數據庫類型的樣本量,上面列出的數據庫表示與該數據庫類型組合的百分比。藍色顯示的單元格表示 100% 的部署組合,而黃色表示 0% 的組合。

因此,如下面的數據庫組合熱圖所示,MySQL 是我們與其他數據庫類型結合最頻繁的數據庫。但是,雖然其他數據庫類型經常與 MySQL 一起使用,但這並不意味著 MySQL 部署總是使用另一種數據庫類型。這可以在 MySQL 的第一行看到,其顏色為淺藍到黃色,相比之下,MySQL 第一列的顏色要和表示 100% 組合的藍色的匹配度高許多。

用黑色邊框突出顯示的單元格表示僅利用這一種數據庫類型的部署,其中僅使用 MySQL 的單元格佔部署總數的 23%。

一文告訴你全世界最頂級的開發者都在使用什麼數據庫

其實,這些數據也比較精準的反映了國內的情況,從2005年開始,IT企業在數據庫的發展方向上就已經有了一些變化。

2007年開始阿里巴巴的IT開銷史無前例,一度成為IBM、Oracle中國的標杆客戶,淘寶、阿里巴巴B2B和支付寶等公司,98%以上的軟件系統和業務都是採用Oracle數據庫提供數據服務。2009年淘寶更是上了全球排名前幾位的大RAC集群,據說當年有16個節點。每天早上CPU還是跑到98%。換句話來說,三年幾千萬買Oracle產品+服務也沒辦法支撐阿里成長的速度,只能開啟自研模式,於是就有了Oracle全面轉向MySQL的進程。

拆分Oracle數據庫+Hadoop其實也可以撐一撐,但是這樣的話,還要向Oracle購買更多的License(再花幾千萬,不是沒錢,是即便花錢也不能徹底解決問題)。因此,阿里巴巴B2B將中文站壓力和數據容量最大的Offer數據庫,成功從Oracle數據庫+IBM小型機+EMC2存儲設備,遷移到MySQL數據庫+PC Server的模式,所以淘寶2013年下線了最後一個Oracle,2014年支付寶交易替換了Oracle,2016年支付寶總賬全面用OceanBase替換Oracle。

發展趨勢:

1.“去Oracle化”。一方面是Oracle採用scale up而不是scale out的方案;另外一個重要原因是價格。網易和阿里巴巴都曾經以Oracle作為主要的數據庫解決方案,投資幾千萬來採購License。阿里巴巴曾經還自稱是互聯網企業中Oracle的最大用戶。Oracle最大的優勢是運維簡單,應用開發方便,但是和昂貴的價格相比,這一點不再具備吸引力。

2.優化MySQL數據庫。這些互聯網企業採用了大量的MySQL服務器集群,最大集群在150臺服務器左右。承載了包括博客、電子商務等應用。採用的優化包括:

  • 傳統的SQL優化,如減少某個查詢涉及到的列,控制索引數量等
  • 閃存介質(SSD或者Flash卡)。這是幾乎所有互聯網企業都採用的方法,由於測試場景各不相同,因此沒法比較誰家的方案更好。大體上分成直接使用閃存介質作為存儲系統;優化閃存介質訪問方式進一步優化
  • 設計MySQL存儲引擎

3.NoSQL數據庫。NoSQL對應用養髮提出了較高的要求,在項目中不是那麼容易推廣,一致性要求被放鬆,但是“原子性”支持需要被保證。一般是為了滿足高併發需要才引入。如盛大采用MongoDB,淘寶自研了Tair數據庫(已經開源)

4.分佈式數據庫。眾所周知,使用不同的SQL優化與執行方式,數據庫的訪問性能可能會存在上千上萬倍的差距。計算存儲分離的核心思想便是在數據存儲層面進行一體化存儲,而計算層面則有效利用每種執行引擎的特點,針對不同的業務場景進行選擇和優化。

一文告訴你全世界最頂級的開發者都在使用什麼數據庫

所以,如果具有超強的研發團隊和運維團隊,在雲時代還是有機會替代Oracle的,我們也看到伴隨著人口紅利,在軟件開發領域的我國實力已今非昔比,大部分企業的 “去IOE”的進程更多的是自發的因系統架構優化而進行,同時各種數據庫技術與產品也蓬勃發展,所以,在技術上看Oracle並非不能取代,更多的是出於綜合成本(改造與建設成本、分享)的考量,需要的是時間和意志。

一千個人眼裡就有一千個哈姆雷特,在每個開發者和企業的眼中,只有適合自己的數據庫才是最好的。


分享到:


相關文章: