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
本站声明:网站内容来源于 *** ,如有侵权,请联系我们,我们将及时处理。