1.MySQL
MySQL 在許多列表中都名列前茅。這里也是一樣,長期以來它是許多開發人員的默認選項。
Oracle 將其開發為關系數據庫管理系統 (RDMS)。這意味著將使用表來存儲數據,并且可以某種方式鏈接這些存儲的數據類型。
MySQL 的核心是采用舊的(但流行的)專有數據庫系統,保持大部分兼容性,并使結果開源。因為開發人員可以在不重新學習 MySQL 的情況下過渡到它,所以幾十年來它一直是應用程序開發的主要內容;在許多數據庫中找到的大部分功能都反映了 MySQL 或衍生自它。例如,使用結構化查詢語言 (SQL) 以關系方式處理數據庫,并使用幾乎任何編程語言連接到數據庫本身。
添加微信好友, 獲取更多信息
復制微信號
不需要對 SQL 有很多了解即可使用 MySQL,而且學習曲線并不陡峭;可以從命令行使用數據庫,且 MySQL 與使用的幾乎所有操作系統 (OS) 具有高度兼容性。
總體而言,MySQL 非常適合大多數用例,因為它是一個可靠、快速的萬事通。由于這一點及其多年來相對于其他解決方案的定位,大多數主機將支持 MySQL 數據庫。但是,也有一些缺點需要考慮:
雖然 MySQL 在大多數情況下都很高效,但對于大型數據庫來說它可能會更慢。更重要的是,與其他(甚至專有)解決方案相比,其調試工具可以改進,存在數據損壞的情況,盡管這不是一個嚴重的問題。總體來說,MySQL 是一個適合大多數應用程序的穩固可靠的數據庫,然而,一些用戶會出于我們接下來要討論的原因而研究其他產品。
2.瑪麗亞數據庫
盡管甲骨文在撰寫本文時擁有 MySQL,并且仍將其作為開源解決方案提供,但其聲譽并不是開源倡導者。收購發生時,其中一位創始人分叉 MySQL 來創建MariaDB:
這是在 Kinsta 支持的開源數據庫,也是DevKinsta 中的一個選項:
因其是 MySQL 的一個分支,所以兼容性幾乎是 1:1。MariaDB 的開發人員也喜歡在其分支附近保持兼容性,可使用 MariaDB 作為 MySQL 的“直接”替代品,幾乎沒有任何后果,可以毫不費力地遷移。
盡管 MariaDB 是 MySQL 的一個分支,但仍然希望開拓自己的道路。開源數據庫的一些獨特功能: MariaDB 使用 Aria 存儲引擎來處理復雜的 SQL 查詢。這使數據庫的速度超過了 MySQL。可對表格列使用動態行,這有助于提高靈活性和適應性。
有一些用于特定用例的專用存儲引擎,在 MySQL 中是找不到的。例如,可以實現分布式存儲、分布式事務等等。由于緊密的兼容性,可在任何使用 MySQL 的地方使用 MariaDB,而不會受到太大影響。因此,可以將其視為“所有應用程序的所有內容”,就像它的分叉一樣。但是,值得注意的是,兼容性只是一種方式,因此需要選擇一種方式:MySQL 或 MariaDB。
3.PostgreSQL
如果您只知道 PHP 和 WordPress,那么可能對 PostgreSQL 不太了解。但是,它是許多開發人員在數據科學、圖形和 AI 行業中 使用的關系型開源數據庫,因為它非常適合Python 和 Ruby 應用程序(盡管也可以使用 PHP)。
與 MySQL 的健壯粗斜紋布相比,PostgreSQL 更像是精致的絲綢,它是一個深思熟慮的開源數據庫,提供了許多殺手級功能:
- 可以實現異步復制。
- 原生支持 *** ON 樣式的文檔存儲、鍵值存儲和 XML。
- 可對數據庫進行全文搜索。
- 一些內置數據類型對于某些應用程序來說是非常寶貴的, 例如地理定位、數組和范圍。
即便如此,仍需小心處理 PostgreSQL,它不像其他解決方案那樣適用于讀取繁重的應用程序,一方面,如果必須定期從現有數據創建報告,那么 PostgreSQL 的文檔存儲可能會受到如此大的數據集的影響。但是,如果想在混合的基礎上包含 NoSQL 風格的功能,那么這種相同的文檔存儲模型是理想的。對鍵值和文檔存儲的原生支持可以節省時間,可快速推進項目。
4.Redis
Redis 與此列表中的其他開源數據庫不同,因為幾乎不會將它用于任何相同的應用程序。
它是一個數據庫,能夠將數據構造為鍵值對。你會發現這類似于 PHP 中的關聯數組或 Python 中的字典,它是一種鏈接數據以便稍后快速引用它的 *** :
5.SQLite
“速度”是這里的關鍵術語,Redis 是用于緩存的首選數據庫。這有幾個原因:Redis 是一種“內存”存儲解決方案,完全在 RAM 中,這意味著讀寫速度非常快。
可在幾分鐘內了解 Redis 的基礎知識并立即開始存儲對象;可將過期時間設置為字符串,這是緩存的關鍵組成部分。一種新穎的Pub/Sub 功能使用 Redis 作為發送方 和接收方之間消息的緩沖區。與這些端點建立直接連接不同,發送者將發布到專用的 Redis“通道”,然后將其移動到接收者(反之亦然)。
這一切都意味著 Redis 非常適合分布式數據和實現緩存。對于更復雜的應用程序來說,它不是更好的,但這不在其職權范圍內。相反,可將它與其他數據庫 (例如 MariaDB)一起使用,以使其支持應用程序的其余部分。對于這個關系型開源數據庫,關鍵賣點的線索在于名稱: SQLite 是一個提供數據庫引擎的小型輕量級庫。
經常會在智能手機等小型設備中找到它,因其很輕巧。事實上,整個數據庫由一個 .sqlite
文件組成,該文件可以存在于系統的任何位置。無需安裝任何服務器軟件或連接到其他服務即可使用 SQLite。
盡管數據庫是一個如此輕量級的工具,但仍然可以擁有數百 TB 的數據庫大小,更大行大小為 GB。即使文件大小如此之大,SQLite 仍然很快。您會發現使用 SQLite 作為數據庫有很多很好的用例:
簡單應用程序的開發人員會喜歡 SQLite,因為它是一個嚴肅的、直接的解決方案,非常適合沒有 (或不能)系統管理員或開發人員在場的物聯網 (IoT) 應用程序。SQLite 適用于低流量網站,因為這些需求很簡單。雖然我們在這里主要討論 Web 應用程序,但桌面應用程序也可以使用 SQLite 來保持高性能。
鑒于 SQLite 的結構,它不適用于大流量站點,因為性能不會是更佳的。更重要的是,這個更輕量級的開源數據庫缺少一些可能很重要的功能。例如,不能使用 MySQL 或 MariaDB 等客戶端查詢數據庫。
來源:開源地理空間基金會中文分會
來源鏈接:https://www.osgeo.cn/post/171a0
本站聲明:網站內容來源于 *** ,如有侵權,請聯系我們,我們將及時處理。