在比较开源数据库时,重要的是弄清楚企业想要从数据库中获取什么,以便做出正确的选择。
在过去的五年中,具有商业许可证的数据库系统开始变得没那么流行,而开源数据库的部署率总体有所上升。根据DB-Engines的数据,到2021年,在企业部署方面,开源许可证数据库管理系统已经取代其商业对手。
与大多数技术一样,选择开源数据库需要企业进行自我评估,以便为数据选择正确的选项。
什么是开源数据库?
开源数据库管理系统与商业数据库管理系统之间的区别在于许可证。开源数据库是开放的,并免费提供使用,而专有产品则需要从供应商处购买。
企业转向开源数据库管理系统可以降低与传统系统许可相关的成本,但可能没有供应商支持或容量。而专有的DBMS选项通常会为客户提供适当的支持系统。
从功能上讲,这两种类型的数据库大致相同。下面让我们看看四个常见关系数据库开源选项的对比。
MySQL
MySQL是由甲骨文支持的双重许可软件,它具有开源社区版和多个付费选项。十多年来,它一直是最受欢迎的开源数据库选项之一。这种受欢迎程度意味着有很多第三方工具和外部文档,让你可以尽可能轻松地使用此选项。
MySQL开发人员在创建该数据库时优先考虑速度,目前MySQL仍然被广泛认为是最快的数据库选项之一。除速度外,MySQL还有脚本帮助提高用户数据库的安全性。受支持的编程语言包括C / C ++、Java、Python和Ruby等。
MySQL的缺点在于其双重许可的性质。某些功能和插件仅在专有版本中可用,对于寻求真正开源选项的企业而言,可能会感到沮丧。除此之外,MySQL仍然是数据管理的临界标准。只要企业不需要100%兼容SQL,企业就可以使用此数据库并期望获得稳定的结果。这个DBMS的设计者选择以速度为重点来构建MySQL,而不是遵循179个功能的完整SQL标准。
各行各业的企业都越来越多开始部署PostgreSQL,这个开源的对象关系数据库系统已经存在30多年。
PostgreSQL在可靠性和数据完整性方面享有盛誉,并且自2001年以来,它一直符合ACID。该数据库支持多种编程语言,例如.Net、C / C ++、Java、Python等。
对于熟悉MySQL的企业,PostgreSQL提供类似的体验。从技术上讲,MySQL是开源数据库,但现在它拥有专有云源模块(在甲骨文管理下)。这使一些开源开发人员开始寻找新的选项,而最相似选项应该是PostgreSQL。
该数据库包含MySQL不具备的功能。例如,表继承,该功能使表可存在于继承为主的非循环图中,以及函数重载,该功能使一个以上的函数可具有相同的SQL名称,只要它们采用的参数不同。
不论其规模或所在行业,任何企业都可以使用PostgreSQL,因为它能够处理复杂的查询和大数据集。如果你的企业希望将其部署用于复杂的分析过程,则非常适合使用PostgreSQL。而PostgreSQL的缺点在于,并行化和集群等高级工具将需要第三方插件。
MariaDB
另一个首选的开源选项是MariaDB,由MySQL的原始开发人员开发。该数据库支持多种编程语言,包括C / C ++、Java、Perl和Python等。
当你使用MariaDB时,你会看到频繁的安全发布,以及开发人员对维护其DBMS安全的承诺。除了对安全性的一般承诺外,开发人员还保证MariaDB将保持开源。
与PostgreSQL相似,MariaDB可兼容从MySQL迁移,并可支持MySQL中常用的编程语言。这使寻求变更的企业更容易过渡。最重要的是,MariaDB可以运行WordPress。
MariaDB的缺点在于,无法保证会很快发布进一步的更新和版本,而且它缺乏内置支持。
SQLite
SQLite可能是目前世界上使用最广泛的数据库引擎。SQLite广泛应用在手机、大多数计算机、以及无数的应用程序中,它很常见,但它针对的问题与MySQL或PostgreSQL略有不同。该DBMS支持多种编程语言,包括C / C ++、Java和Python等。
对于在网络边缘拥有小型数据库或设备的企业,SQLite非常适合。SQLite可以跨系统部署,并为单个应用程序和设备提供本地数据存储。SQLite在企业级别的缺点在于,人们对其目的的误解。它并不旨在与本文列出的较大选项的功能和特性相匹配,并且可能会使寻求高可扩展性的用户失望。如果你需要处理大量数据,则SQLite不是你的最佳选择。
那些需要多个用户具有特殊访问权限的应用程序也不适合使用SQLite,因为SQLite可以在普通磁盘文件上读写,这意味着唯一适用的访问权限是底层操作系统中包含的常见权限。