2019最受歡迎的資料庫是?
作者 | Kristi
譯者 | 平川
本文最初發佈於 ScaleGrid 的博客,經授權由 InfoQ 中文站翻譯並分享。
哪些資料庫是 2019 年的「大勢」?在 DeveloperWeek 上,我們詢問了數百名開發人員、工程師、軟體架構師、開發團隊和 IT 領導者,以了解當前 NoSQL 與 SQL 的使用情況、最流行的資料庫、需要跟蹤的重要指標以及最耗時的資料庫管理任務。通過本文,你可以了解 MySQL、MongoDB、PostgreSQL、Redis 和其他許多資料庫管理系統的最新信息,看看今年最受歡迎的資料庫管理系統是哪一個。
SQL vs. NoSQL
任何資料庫管理員都知道,你必須問自己的第一個問題是,應用程序是使用 SQL 還是 NoSQL 資料庫。這兩者有什麼區別?
SQL 資料庫
SQL 資料庫也稱為關係型資料庫,基於結構化查詢語言(SQL)定義和操作數據。SQL 資料庫是最常用的資料庫,對於處理結構化數據非常有用。結構化數據是指組織數據元素,並標準化它們之間以及與不同屬性之間的關係。
NoSQL 資料庫
NoSQL 資料庫也稱為非關係型資料庫,允許使用動態模式存儲和檢索非結構化數據。NoSQL 由於其創建獨特結構的靈活性而被廣泛使用,它可以把文檔、圖、列,甚至是鍵值組織為數據結構。
幾十年來,SQL 資料庫一直領先於非關係型資料庫,但是,隨著 MongoDB、Redis 和 Cassandra 等資料庫的流行,NoSQL 正在迅速縮小差距。儘管許多組織選擇從遺留資料庫(如 Oracle)遷移,但並非所有組織都採用 NoSQL 方式。根據我們的調查,隨著對 PostgreSQL 等系統的需求不斷增長,SQL 仍然佔據了 60% 的市場份額。
SQL 資料庫使用率: 60.48%
NoSQL 資料庫使用率:39.52%
最流行的資料庫
那麼,2019 年,哪些資料庫最受歡迎?我們了解到,超過 3/5 的受訪者使用 SQL,你可能會認為 Oracle 搶了風頭。再猜一遍。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 和 InfluxDB 的用戶總和僅占 2.4%。
雖然這些數字可能令人震驚,但毫無疑問,MySQL、MongoDB 和 PostgreSQL 正變得越來越流行。那麼,該調查與最知名的資料庫管理系統趨勢相比如何呢?資料庫引擎排名——流行趨勢報告將這些領導者排在了前 5 位,但 Oracle 仍然保持在第 1 位,而 Microsoft SQL Server 位列第 3 位。
雖然按照我們的預期,到場的 Oracle 資料庫用戶會多得多,但在世界最大的開發博覽會上,Oracle 用戶卻來的很少。
單資料庫 vs. 多資料庫
與將所有的雞蛋都放在一個籃子里的傳統策略相比,多資料庫類型的使用在過去 10 年出現了爆炸式增長。那麼有多少?在我們交流過的組織中,有將近一半實際上使用了不止一種類型的資料庫來支持他們的應用程序,而不是單個資料庫!使用多個資料庫的比例為 44.3%,使用一個資料庫的比例為 55.7%:
SQL 與 NoSQL 的多資料庫組合
因此,我們了解到,將近一半的受訪者正在組合多個資料庫來支持他們的產品,他們把哪種類型的資料庫管理系統一起使用?這一點不那麼令人吃驚,75.6% 的多資料庫類型組合使用了 SQL 和 NoSQL 資料庫。這進一步說明,對於許多組織來說,並不能一刀切。對於 SQL 和 NoSQL,雖然你可能有偏愛,但不可否認的事實是,它們相比於對方都提供了明顯的優勢。與其將你的組織限制在一種資料庫類型上,不如發展你的資料庫策略,使其具有兼容性,以便這些強大的資料庫管理系統能夠互相補充,並填補你數據需求中的空白!
SQL NoSQL 資料庫使用率:75.6%
SQL SQL 資料庫使用率:14.6%
NoSQL NoSQL 資料庫使用率:9.8%
最流行的多資料庫類型組合
如果你是一個單類型資料庫用戶,並且正在考慮將另一種資料庫類型添加到你的組合中,那麼這一節可能會非常有趣——SQL 和 NoSQL,哪些資料庫最常一起使用。
MySQL 和 MongoDB 的組合是明顯的贏家,這對組合佔據了多資料庫類型超過三分之一的份額。雖然 MongoDB 通常被認為是 MySQL 的替代品,但如果設計得當,這兩個資料庫可以很好地協同。第二流行的組合是 MySQL 和 PostgreSQL 的組合。這兩個 SQL 資料庫顯然是競爭對手,但可以一起使用,用於存儲不同的數據集。從上一節的圖中可以看到,MySQL 和 PostgreSQL 組合的使用率為 9.76%,佔了多資料庫中 SQL SQL 組合的絕大部分。
MySQL MongoDB:34.15%
MySQL PostgreSQL:9.76%
MongoDB PostgreSQL:7.32%
MongoDB Redis:7.32%
MySQL MongoDB PostgreSQL:4.88%
MySQL MongoDB PostgreSQL Redis:4.88%
最耗時的資料庫管理任務
好了,我們已經知道了哪些資料庫管理系統、類型和使用組合最流行,讓我們看看在資料庫管理方面什麼任務消耗了我們的時間。任何以前管理過資料庫的人都知道,維護一個健康的生產部署涉及無數的任務。因此,對於最耗時的資料庫管理任務這個問題,有如此多樣化的回答,我們並不感到驚訝。
根據我們的調查,監控排在第一位,占 12.6%,稍稍領先於備份,管理磁碟空間、擴展和添加表都以 11.6% 的比例並列第二。排在第三位的是視圖和存儲程序的維護和變更發布,占 8.7%。清理和資料庫安裝配置並列第四,占 7.2%。升級以 6.5% 的比例排在第五位,其他十幾項任務占 11.6%,包括遷移、查詢、比較、調優和複製。
最重要的資料庫性能跟蹤指標
雖然對於最重要的資料庫管理任務,我們看到了各種各樣的回答,但是,對於最重要的性能跟蹤指標則有三個最為突出的。
查詢響應時間不僅是跟蹤最多的指標,也是回答中最多的指標,有 51.8%!在我們 2018 年 10 月編製的一份最耗時的 PostgreSQL 管理任務報告中,我們預計這一比例將達到 30.8%,但是,當擴展到所有的資料庫管理系統時,這一比例大幅增加。查詢速度是一個非常重要的度量指標,需要連續跟蹤,這樣就可以確定運行緩慢的查詢是否會影響應用程序的性能。許多 DBA 使用一個慢查詢分析器工具來識別問題查詢,看看它與哪種查詢相關,按時間範圍理解它們的查詢,並找到導致系統中讀取負載的頂級查詢,以識別那些沒有索引的查詢。
排在第二位的是可靠性,我們的受訪者中有 18.2% 的人這麼認為。不用說,與慢查詢相比,停機並不常見,但如果資料庫宕機,則會對性能造成最嚴重的影響。這就是生產部署實現高可用框架的一個非常重要的原因,要在數據中心發生故障時保持資料庫在線。
內存以 8.2% 的回答排在第三位。可用內存越多,資料庫的性能就應該越好。理解和監控內存使用應該是你的首要任務,因為內存不足或耗盡將導致資料庫讀取和向磁碟寫入數據的速度非常慢。
感謝在 2019 DeveloperWeek 上為雲資料庫趨勢報告做出貢獻的數百名參與者!我們很高興與大家分享這些見解,並希望可以在下面的評論中看到大家的想法。
英文原文
https://scalegrid.io/blog/2019-database-trends-sql-vs-nosql-top-databases-single-vs-multiple-database-use/
今日薦文
TAG:InfoQ |