OgCloud强推 | 2021年人气榜数据库

OgCloud强推 | 2021年人气榜数据库

   浏览次数:94    2021-02-22 14:33:14

MySQL,PostgreSQL,MongoDB,Redis

数据库是任何软件应用程序的基石。您将需要一个或多个数据库来开发几乎所有类型的软件应用程序:Web,企业,嵌入式系统,实时系统,AI,ML,HPC,区块链,IoT和许多其他应用程序。

S1PdENfHsi7jdJ.png

二十年前,选择数据库要容易得多。在大多数情况下,您可能选择了一个关系数据库系统,然后就完成了。但是在现代软件开发中,选择正确的数据库是最具挑战性的任务之一。

将从数据库的主要特点、优势等类容展开分析:

一、MySQL

1995年,两位软件工程师Michael Widenius和David Axmark创建了开源关系数据库管理系统(RDBMS)MySQL。自成立以来,MySQL因其企业级功能,免费,灵活(GPL)社区许可证和升级的商业许可证而迅速在行业和社区中流行。在开源数据库中,PostgreSQL专注于创新和高级功能,而MySQL则专注于健壮性,稳定性和成熟度。

今天,MySQL是最流行和使用最广泛的SQL数据库之一。它也是Web应用程序中最常用的数据库之一。世界上一些最大的Web规模应用程序(例如Facebook,Uber)使用MySQL。

5个主要功能
1.具有两种许可模式的开源RDBMS:免费的Community Server和专有的Enterprise Server。
2.提供ACID交易保证(使用InnoDB引擎)。就CAP而言,它提供了即时的一致性。
3.通过其Shared Nothing MySQL集群提供水平分区(分片)。结果,它提供了高可用性和高吞吐量,并具有低延迟和近乎线性的缩放比例。
4.借助其MySQL群集,它可以提供多主ACID事务。
5.多模型数据库,同时支持结构化数据(SQL)和半结构化数据(JSON)。

何时使用MySQL
1.具有ACID事务保证的结构化数据(SQL)。
2.水平可伸缩性是一项关键要求,尤其是在写入大量数据时。
3.多主ACID交易是基本要求。
4.数据安全性是一项关键功能。
5.需要一个聚合数据库,即,一个用于OLTP和OLAP工作负载的数据库。

二、PostgreSQL

自1970年代初以来,加州大学伯克利分校就致力于通过其开创性的数据库项目Ingres来塑造现代数据库管理系统。1986年,传奇人物Michael Stonebraker领导了POSTGRES(Post-Ingres)项目,以解决现有数据库项目的问题。PostgreSQL诞生于POSTGRES项目的一部分,该项目是一个关系数据库管理系统。在过去的30年中,PostgreSQL在现代数据库开发方面处于领先地位,做出了许多创新,迈克尔·斯通布雷克(Michael Stonebraker)于2014年获得图灵奖,主要是因为他在PostgreSQL中的工作。

如今,PostgreSQL是最常用的数据库之一。它也是最先进的开源关系数据库。

5个主要功能
1.具有非常允许的PostgreSQL许可证的开源RDMBS。PostgreSQL有许多扩展,具有各种高级功能。
2.提供ACID交易保证。就CAP而言,它可以作为单个服务器提供即时的一致性。
3.Citus Data是PostgreSQL的扩展,提供了令人垂涎的分布式SQL功能,即具有SQL数据库的事务保证和NoSQL数据库的水平扩展的数据库。
4.它提供了更多的高级索引,如部分索引,布隆过滤器。同样,在PostgreSQL中创建索引也是非阻塞的。
5.它是功能丰富的多模型数据库,支持结构化数据(SQL),半结构化数据(JSON,XML),键值,空间数据。

何时使用PostgreSQL
1.数据是结构化(SQL),并且ACID事务保证是具有严格数据完整性的关键条件。
2.当需要“分布式SQL”时,应在全球分布式数据库中处理数百万个事务。
3.需要一个复杂的查询计划器。
4.需要高级可靠性和灾难恢复,例如PITR,活动待机。
5.期望包含地理空间数据类型的多模型数据库。

三、 MongoDB

当我们需要在数据库中保存半结构化数据(例如JSON,XML)时,有很多用例。此外,使用面向对象的编程语言向RDBMS加载和访问数据需要附加的应用程序级映射(对象关系阻抗不匹配)。为了解决这些问题,尤其是处理文档数据时,公司10gen(现为MongoDB Inc.)在2009年发布了MongoDB作为第一个文档数据库。在接下来的十年中,MongoDB进行了重大改进。它解决了许多缺点(例如安全性),并创新并开创了许多功能。

当前,它是主要的文档数据库和主要的NoSQL数据库。

5个主要功能
1.具有各种许可证的开放式NoSQL文档数据库(BSON):社区服务器(免费),企业服务器(商业),Atlas(在云中管理)。
2.通过自动共享提供水平缩放,并通过主从节点进行内置复制。就CAP而言,它是CP(一致性和分区容忍)。
3.具有快照隔离功能的分布式多文档ACID事务。
4.丰富而强大的查询语言,使用聚合管道进行复杂的查询。它还支持Map-Reduce查询,文本搜索,图形搜索和地理搜索。
5.MongoDB Inc.还提供了基于MongoDB构建的全文本搜索引擎(Atlas Search)和数据湖(Atlas Data Lake)。

何时使用MongoDB
1.数据是具有高级查询功能的文档或半结构化数据(例如JSON,XML)。
2.模式不断变化的快速应用程序开发。
3.大型结构化数据被规范化为多个SQL表,并且在性能和复杂性方面受到影响。
4.数据是无架构的。
5.对于半结构化数据,一致性优于可用性。

四、Redis

2009年,意大利开发人员Salvatore Sanfilippo试图改善其创业公司的可扩展性,并希望开发一个实时日志分析器。他在使用传统数据库系统时遇到了严重的扩展问题,并将Redis创建为分布式内存中键值存储。Redis很快就受到社区的欢迎,并发展成为高度可扩展的内存中数据结构存储,已在业界广泛使用。

5个主要功能
1.具有BSD 3子句许可证的Open Core分布式内存中NoSQL数据结构存储。
2.用作内存中的分布式键值数据库。也可用作分布式缓存(有或没有数据库)或具有可选持久性的消息代理。
3.支持多种数据结构:字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志,地理空间索引和流。
4.通过Redis Cluster的内置复制,自动故障转移和分片功能,具有高度可扩展性。就CAP而言,它是CP(一致性和分区容忍)。
5.高级缓存功能(LRU逐出策略,TTL受限的密钥)。

何时使用Redis
1.需要分布式的内存中数据结构。
2.需要分布式和企业级缓存,例如,以提高数据库访问性能。
3.用于会话管理。
4.实时用例,例如库存系统。
5.对于大量的数据集。

(本文由闻数起舞翻译自Maximilian Beckers的文章《Top 10 Databases to Use in 2021》,转载请注明出处,原文链接:https://towardsdatascience.com/top-10-databases-to-use-in-2021-d7e6a85402ba)