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

資料和雲發表於2022-12-05

作為一名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並非不能取代,更多的是出於綜合成本(改造與建設成本、分享)的考量,需要的是時間和意志。

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

出處:(複製到瀏覽器中開啟)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31556440/viewspace-2655605/,如需轉載,請註明出處,否則將追究法律責任。

相關文章