2021年推荐使用的十大数据库
MySQL,Oracle,PostgreSQL,Microsoft SQL Server,MongoDB,Redis,Elasticsearch,Cassandra,MariaDB,IBM Db2https://p3.pstatp.com/large/pgc-image/d7ee7bd3d8244daa976dbfa85dbd42c0> Image by Tumisu from Pixabay
数据库是任何软件应用程序的基石。您将必要一个或多个数据库来开发几乎全部范例的软件应用程序:Web,企业,嵌入式体系,实时体系,AI,ML,HPC,区块链,IoT和很多其他应用程序。
二十年前,选择数据库要轻易得多。在大多数环境下,您大概选择了一个关系数据库体系,然后就完成了。但是在现代软件开发中,选择正确的数据库是最具挑战性的任务之一。
随着微服务,云,分布式应用程序,全局扩展,半结构化数据,大数据,快速数据,低延迟数据的兴起:现在,各种NoSQL都加入了传统的SQL数据库。NewSQL和Cloud数据库。
目前有343个数据库。在这里,我将根据以下标准从它们中选择十个数据库:
[*]重要特点
[*]人气度
[*]趋向
[*]主流用途
[*]光明的未来
我将为每个数据库讨论以下内容:
[*]概述,包括简短的历史记录。
[*]5个重要功能。
[*]什么时间使用它们。
[*]什么时间不使用它们。
[*]人气。
[*]趋势。
[*]数据库即服务(DBaaS)。
[*]备择方案。
1. MySQL
1995年,两位软件工程师Michael Widenius和David Axmark创建了开源关系数据库管理体系(RDBMS)MySQL。自成立以来,MySQL因其企业级功能,免费,机动(GPL)社区允许证和升级的贸易允许证而迅速在行业和社区中盛行。在开源数据库中,PostgreSQL专注于创新和高级功能,而MySQL则专注于健壮性,稳固性和成熟度。
今天,MySQL是最盛行和使用最广泛的SQL数据库之一。它也是Web应用程序中最常用的数据库之一。世界上一些最大的Web规模应用程序(例如Facebook,Uber)使用MySQL。
5个重要功能
[*]具有两种允许模式的开源RDBMS:免费的Community Server和专有的Enterprise Server。
[*]提供ACID交易保证(使用InnoDB引擎)。就CAP而言,它提供了即时的同等性。
[*]通过其Shared Nothing MySQL集群提供程度分区(分片)。结果,它提供了高可用性和高吞吐量,并具有低延迟和近乎线性的缩放比例。
[*]借助其MySQL群集,它可以提供多主ACID事务。
[*]多模型数据库,同时支持结构化数据(SQL)和半结构化数据(JSON)。
何时使用MySQL
[*]具有ACID事务保证的结构化数据(SQL)。
[*]程度可伸缩性是一项关键要求,尤其是在写入大量数据时。
[*]多主ACID交易是基本要求。
[*]数据安全性是一项关键功能。
[*]必要一个聚合数据库,即,一个用于OLTP和OLAP工作负载的数据库。
什么时间不使用MySQL
[*]在全球分布式数据库中应处置惩罚数百万个事务的环境下,必要使用“分布式SQL”。
[*]数据是非常相干的(例如,交际媒体),即像图表一样的数据。
[*]数据是半结构化的,即具有高级查询功能的JSON数据。
[*]必须具有高级数据保护功能(例如,屏蔽,模糊处置惩罚,限制)。
MySQL即服务
[*]MySQL数据库服务(多云,OLTP和OLAP)
[*]ScaleGrid(程度缩放)
[*]Vitess(程度缩放)
[*]适用于MySQL的Aiven(多云)
[*]适用于MySQL的Amazon RDS
[*]Oracle MySQL云服务(程度扩展)
[*]Azure MySQL数据库
[*]适用于MySQL的Google Cloud SQL
备择方案
[*]甲骨文
[*]PostgreSQL
[*]Microsoft SQL服务器
[*]Maria数据库
[*]IBM Db2
[*]亚马逊Aurora
[*]Google Cloud Spanner
人气:
MySQL Community Edition是业界使用最广泛的免费数据库。而且,其贸易版本在行业中被广泛使用。
最闻名的数据库排名网站DB-Engines将MySQL排名第二,仅次于Oracle:
https://p1.pstatp.com/large/pgc-image/31e51591fa884cb88cf71c1a026d76e1> Image by Author (data: DB-Engines)
2020年Stack Overflow开发人员调查将MySQL列为2020年最受欢迎的数据库:
https://p1.pstatp.com/large/pgc-image/45755c8472af4f2db606dacc069f8617> Source: Stack Overflow Developer Survey, 2020
趋势
拥有25年历史的MySQL并不是目前最盛行的数据库。但是与其他较旧的数据库差别,它仍然保持较高的吸引力,如下所示:
https://p1.pstatp.com/large/pgc-image/22749448e4dc4b7a8f57d3c534ba07c8> Source: DB-Engines
此外,Google趋势在已往几年中显示出相对稳固的图表:
https://p9.pstatp.com/large/pgc-image/50acb9f2c7a7438dadd611862c58d1b4> Source: Google Trends
2.甲骨文
当埃德加·科德(Edgar F. Codd)在关系数据库管理体系(RDBMS)上发表其革命性论文“大型共享数据库的数据关系模型”(1970)时,它彻底改变了数据库体系的面貌。该论文特别启发了年轻的软件工程师Larry Ellison(Oracle公司现任CTO)。厥后,他在1979年创建了世界上第一个可商用的RDBMS体系Oracle。从那时起,Oracle不停是领先的贸易RDMBS体系,并在Unix和Linux体系中占据主导地位。在已往的41年中,Oracle随着时间的推移不断发展,并为RDBMS和整个数据库体系的创新做出了贡献。
目前,Oracle是贸易支持的第一数据库,也是整体上使用广泛的RDBMS之一。它的最新版本(21.c)添加了很多创新功能,这些功能将使其在未来几年成为有吸引力的选择。
5个重要功能
[*]专有RDBMS。
[*]提供ACID交易保证。就CAP而言,它可以作为单个服务器提供即时的同等性。
[*]支持结构化数据(SQL),半结构化数据(JSON,XML),空间数据和RDF存储的高级多模型数据库。根据特定的数据模型提供多种访问模式
[*]提供区块链表。
[*]同时支持OLTP和OLAP工作负载。
何时使用Oracle
[*]如果公司想要拥有一个融合数据库或主数据库(一个用于OLTP和OLAP的数据库)。
[*]传统的事务性工作负载具有结构化(SQL)数据,而且ACID事务保证是关键条件。
[*]区块链表是必须的。
[*]用于数据仓库。
[*]包括地理空间数据范例的多模型数据库是必不可少的要求。
何时不使用Oracle
[*]如果公司想在数据库上省钱。
[*]多主设备ACID事务是必须具备的功能。
[*]数据是半结构化的,即具有高级查询功能的JSON数据。
[*]数据是非常相干的(例如,交际媒体),即像图表一样的数据。
Oracle即服务
[*]Oracle融合数据库
[*]适用于Oracle的Amazon RDS
备择方案
[*]MySQL
[*]PostgreSQL
[*]Microsoft SQL服务器
[*]Maria数据库
[*]IBM Db2
[*]亚马逊Aurora
[*]Google Cloud Spanner
人气度
四十年来,Oracle为客户提供了稳固,成熟的企业级数据库。尽管它面对来自开放源代码SQL数据库和NoSQL数据库的激烈竞争,但它仍然是DB-Engines排名最高的数据库体系:
https://p3.pstatp.com/large/pgc-image/36236b04983a4425b36c09a040b96691> Image by Author (Data: DB-Engines)
但是,在Stack Overflow开发人员调查中,由于该列表受开源数据库的支配,因此它排名第8位:
https://p1.pstatp.com/large/pgc-image/9c53471d128d4805b047bd6ebc3fae47> Source: Stack Overflow Developer Survey, 2020
趋势
Oracle大概以其最新版本赢得了大奖。结果,它在最近几年中获得了很大的吸引力。思量到市场正在转向开源数据库,这是一个壮举:
https://p1.pstatp.com/large/pgc-image/ff241f68287644ab8677c22ed0f1ed7f> Source: DB-Engines
此外,Google的趋势还显示出Oracle的曲线非常平展,这在贸易数据库中很少见:
https://p1.pstatp.com/large/pgc-image/6207073355264b2390a842ef85f1902b> Source: Google Trends
3. PostgreSQL
自1970年代初以来,加州大学伯克利分校就致力于通过其开创性的数据库项目Ingres来塑造现代数据库管理体系。1986年,传怪杰物Michael Stonebraker向导了POSTGRES(Post-Ingres)项目,以解决现有数据库项目标问题。PostgreSQL诞生于POSTGRES项目标一部分,该项目是一个关系数据库管理体系。在已往的30年中,PostgreSQL在现代数据库开发方面处于领先地位,做出了很多创新,迈克尔·斯通布雷克(Michael Stonebraker)于2014年获得图灵奖,重要是因为他在PostgreSQL中的工作。
现在,PostgreSQL是最常用的数据库之一。它也是最先进的开源关系数据库。
5个重要功能
[*]具有非常允许的PostgreSQL允许证的开源RDMBS。PostgreSQL有很多扩展,具有各种高级功能。
[*]提供ACID交易保证。就CAP而言,它可以作为单个服务器提供即时的同等性。
[*]Citus Data是PostgreSQL的扩展,提供了令人垂涎的分布式SQL功能,即具有SQL数据库的事务保证和NoSQL数据库的程度扩展的数据库。
[*]它提供了更多的高级索引,如部分索引,布隆过滤器。同样,在PostgreSQL中创建索引也是非阻塞的。
[*]它是功能丰富的多模型数据库,支持结构化数据(SQL),半结构化数据(JSON,XML),键值,空间数据。
何时使用PostgreSQL
[*]数据是结构化(SQL),而且ACID事务保证是具有严酷数据完整性的关键条件。
[*]当必要“分布式SQL”时,应在全球分布式数据库中处置惩罚数百万个事务。
[*]必要一个复杂的查询计划器。
[*]必要高级可靠性和灾难规复,例如PITR,活动待机。
[*]盼望包含地理空间数据范例的多模型数据库。
何时不使用PostgreSQL
[*]多主设备ACID事务是必须具备的功能。
[*]数据是半结构化的,即具有高级查询计划器的JSON数据。
[*]必要一个融合数据库(OLTP和OLAP)。
[*]数据是非常相干的(例如,交际媒体),即像图一样的数据。
PostgreSQL即服务
[*]PostgreSQL的EDB(程度扩展)
[*]CitusData(分布式SQL)
[*]ScaleGrid(程度缩放)
[*]PostgreSQL的Aiven(多云)
[*]适用于PostgreSQL的Amazon RDS
[*]Azure PostgreSQL数据库
[*]PostgreSQL的Google Cloud SQL
备择方案
[*]MySQL
[*]甲骨文
[*]Microsoft SQL服务器
[*]Maria数据库
[*]IBM Db2
[*]亚马逊Aurora
[*]Google Cloud Spanner
人气度
PostgreSQL是最古老的开源和免费数据库之一。它具有巨大的社区支持,并在社区和行业中得到使用。
根据数据库引擎,它是最受欢迎的数据库之一:
https://p1.pstatp.com/large/pgc-image/2df5400873c944d28e24e4fab95c0490> Image by Author (Data: DB-Engines)
根据Stack Overflow开发人员调查,它是2020年第二受欢迎的数据库:
https://p3.pstatp.com/large/pgc-image/c23f9a157a8245c6af902b9c32d0ff69> Source: Stack Overflow Developer Survey, 2020
趋势
由于其先进的功能和创新,即使在PostgreSQL引入30年后,它也获得了很多宣传,如下所示:
https://p3.pstatp.com/large/pgc-image/8ead51c3764f4a099254cb4434d7979e> Source: DB-Engines
Google趋势在最近几年也显示出对PostgreSQL的吸引力增加,这表明对PostgreSQL的兴趣日益增加:
https://p3.pstatp.com/large/pgc-image/bf88a807b94b46c7a013c5846a6d7176> Source: Google Trends
4. Microsoft SQL Server
1988年,Microsoft与Ashton-Tate和Sybase一起创建了RDBMS作为Sybase SQL Server变体。1989年,他们发布了Microsoft SQL Server的第一个版本。尽管不像其他产品那么创新或先进,但是Microsoft SQL Server多年来经历了重大更新和大修。最初针对IBM OS / 2发行,不久又针对Windows体系发行。在已往的三十年中,它是Windows体系中占主导地位的贸易中型数据库。
当前,它是领先的贸易数据库体系之一,Microsoft提供了出色的工具支持。
5个重要功能
[*]具有各种允许证的专有RDBMS:Developer和Express(免费),Standard和Enterprise(贸易)。
[*]提供ACID交易保证。就CAP而言,它可以作为单个服务器提供即时的同等性。
[*]通过T-SQL,.NET语言,R,Python和Java支持服务器端脚本。
[*]它是一个多模型数据库,支持结构化数据(SQL),半结构化数据(JSON)和空间数据。
[*]对本地和云的出色工具支持。此外,Azure提供了轻松将本地SQL Server迁徙到云的工具。
何时使用SQL Server
[*]具有ACID事务保证的数据结构化(SQL)。
[*]该开发平台与其他Microsoft产品紧密结合在一起。
[*]Azure云是首选的公共云技术,首选托管SQL数据库。
[*]一家公司已经拥有MS-SQL数据库,并希望在Cloud中对其进行迁徙。
何时不使用SQL Server
[*]对于数据库预算较低的公司而言并不理想。
[*]多主设备ACID事务是必须具备的功能。
[*]数据是半结构化的,即JSON数据,而且必要高级查询操作。
[*]必要分布式SQL数据库。
[*]必要聚合数据库。
SQL Server即服务
[*]Azure SQL(程度扩展)
[*]适用于SQL Server的Amazon RDS
[*]Google Cloud上的SQL Server
备择方案
[*]MySQL
[*]甲骨文
[*]PostgreSQL的
[*]Maria数据库
[*]IBM Db2
[*]亚马逊Aurora
[*]Google Cloud Spanner
人气:
MS SQL是Windows平台中最受欢迎的贸易数据库,也是Azure Cloud中首选的SQL数据库。由于这些究竟,根据DB-Engines排名,它仍然是第三受欢迎的数据库:
https://p1.pstatp.com/large/pgc-image/7cb2fdec193c4fb49b9e786c695c5670> Image by Author (Data: DB-Engines)
它也是Stack Overflow Developer调查中第三大最受欢迎的数据库:
https://p3.pstatp.com/large/pgc-image/a2ba0704fdea483295b1eb09fe72b62f> Source: Stack Overflow Developer Survey, 2020
趋势
MS SQL是此列表中最古老的数据库之一。尽管它是一个稳固可靠的数据库,但它并不是最具创新性或先进性的数据库,而且呈下降趋势,如DB-Engines趋势所示:
https://p1.pstatp.com/large/pgc-image/dcc6b3068a8f46b39b9964caa6c839b6> Source: DB-Engines
多年来,Google趋势显示MS SQL呈下降趋势,而且在2021年也不会改变:
https://p9.pstatp.com/large/pgc-image/f9bf6ce16ba049acaa44bc37f2964728> Source: Google Trends
5. MongoDB
当我们必要在数据库中生存半结构化数据(例如JSON,XML)时,有很多用例。此外,使用面向对象的编程语言向RDBMS加载和访问数据必要附加的应用程序级映射(对象关系阻抗不匹配)。为相识决这些问题,尤其是处置惩罚文档数据时,公司10gen(现为MongoDB Inc.)在2009年发布了MongoDB作为第一个文档数据库。在接下来的十年中,MongoDB进行了重大改进。它解决了很多缺点(例如安全性),并创新并开创了很多功能。
当前,它是重要的文档数据库和重要的NoSQL数据库。
5个重要功能
[*]具有各种允许证的开放式NoSQL文档数据库(BSON):社区服务器(免费),企业服务器(贸易),Atlas(在云中管理)。
[*]通过自动共享提供程度缩放,并通过主从节点进行内置复制。就CAP而言,它是CP(同等性和分区容忍)。
[*]具有快照隔离功能的分布式多文档ACID事务。
[*]丰富而强盛的查询语言,使用聚合管道进行复杂的查询。它还支持Map-Reduce查询,文本搜索,图形搜索和地理搜索。
[*]MongoDB Inc.还提供了基于MongoDB构建的全文本搜索引擎(Atlas Search)和数据湖(Atlas Data Lake)。
何时使用MongoDB
[*]数据是具有高级查询功能的文档或半结构化数据(例如JSON,XML)。
[*]模式不断变革的快速应用程序开发。
[*]大型结构化数据被规范化为多个SQL表,而且在性能和复杂性方面受到影响。
[*]数据是无架构的。
[*]对于半结构化数据,同等性优于可用性。
何时不使用MongoDB
[*]数据是结构化数据。
[*]数据是非常相干的(例如,交际媒体),即像图表一样的数据。
[*]对于数据仓库(OLAP数据库)。
[*]多主写入对于繁重的写入操作是必须的。
[*]高可用性比同等性优先。
MongoDB即服务
[*]MongoDB Atlas(全局扩展)
[*]ScaleGrid MongoDB(托管MongoDB)
[*]云数据库MongoDB版
备择方案
[*]亚马逊DynamoDB
[*]Azure Cosmos数据库
[*]亚马逊文件数据库
[*]Couchbase
[*]CouchDB
[*]Google Cloud Firestore
人气度
作为闻名的文档数据库,MongoDB比年来正迅速普及,而且在数据库引擎排名中排名第五。
https://p3.pstatp.com/large/pgc-image/700de1c1320b49b981d8c613c794d388> Image by Author (Data: DB-Engines)
2020年Stack Overflow开发人员调查还使MongoDB排名第五:
https://p3.pstatp.com/large/pgc-image/1f088c87cf5948a284e08cc786447037> Source: Stack Overflow Developer Survey, 2020
趋向
如数据库引擎所示,MongoDB比年来正渐渐受到青睐:
https://p9.pstatp.com/large/pgc-image/a79908d37dd040e1badfc7fbe1ebc657> Source: DB-Engines
Google趋势还显示了MongoDB的上升趋势:
https://p9.pstatp.com/large/pgc-image/7b4a80d89d7849f8a9d87c820848bacc> Source: Google Trends
6. Redis
2009年,意大利开发人员Salvatore Sanfilippo试图改善其创业公司的可扩展性,并希望开发一个实时日志分析器。他在使用传统数据库体系时遇到了严重的扩展问题,并将Redis创建为分布式内存中键值存储。Redis很快就受到社区的欢迎,并发展成为高度可扩展的内存中数据结构存储,已在业界广泛使用。
5个重要功能
[*]具有BSD 3子句允许证的Open Core分布式内存中NoSQL数据结构存储。
[*]用作内存中的分布式键值数据库。也可用作分布式缓存(有或没有数据库)或具有可选长期性的消息代理。
[*]支持多种数据结构:字符串,哈希,列表,聚集,带范围查询的排序聚集,位图,超日志,地理空间索引和流。
[*]通过Redis Cluster的内置复制,自动故障转移和分片功能,具有高度可扩展性。就CAP而言,它是CP(同等性和分区容忍)。
[*]高级缓存功能(LRU逐出策略,TTL受限的密钥)。
何时使用Redis
[*]必要分布式的内存中数据结构。
[*]必要分布式和企业级缓存,例如,以提高数据库访问性能。
[*]用于会话管理。
[*]实时用例,例如库存体系。
[*]对于大量的数据集。
什么时间不使用Redis
[*]一小部分数据必要单服务器内存数据结构存储。
[*]具有ACID事务保证的主数据存储(OLTP数据库)。
[*]一小部分数据必要单服务器缓存。
[*]数据是非常相干的(例如,交际媒体),即像图表一样的数据。
[*]必要OLAP数据库时。
Redis即服务
[*]Redis企业云(多云)
[*]ScaleGrid Redis(托管Redis)
[*]针对Redis的Aiven(多云)
[*]亚马逊ElastiCache
[*]Redis的Azure缓存
[*]Google Memorystore
备择方案
[*]Memcached
[*]Hazelcast
[*]etcd
[*]Ehcache
[*]Riak KV
人气:
几乎全部企业都使用分布式内存数据存储和分布式缓存。因此,Redis在行业中非常受欢迎,如下所示:
https://p3.pstatp.com/large/pgc-image/c85e379eb3884bae8f88cd4794e79446> Image by Author (Data: DB-Engines)
Stack Overflow开发人员调查还将Redis列为整体排名第六的最受欢迎的数据库:
https://p9.pstatp.com/large/pgc-image/d76ea7b7c6da4a4c930b165de3572593> Source: Stack Overflow Developer Survey, 2020
趋势
随着云和微服务的兴起,Redis在最近几年受到了极大的关注,如下所示:
https://p9.pstatp.com/large/pgc-image/672e4566732242d5add8f2774eb8a250> Source: DB-Engines
自成立以来,Google趋势也显示了Redis趋势的直线上升:
https://p3.pstatp.com/large/pgc-image/c8d4fd43cbcc46a9982ecdfe1eaaea5a> Source: Google Trends
7. Elasticsearch
无论是小型创业公司还是Web规模的电子商务公司,都必要全文搜索。Doug Cutting在1999年出于全文搜索目标开发了Java库Lucene。从那时起,Lucene成为全文搜索的行业标准。Elasticsearch是基于Lucene的全文本搜索引擎,最初由Shay Banon开发并于2010年发布。它是一个分布式,多租户的全文本搜索引擎,提供REST API。
5个重要功能
[*]开放核心,分布式搜索引擎。
[*]通过自动分片提供程度缩放。它是最可扩展的搜索引擎。就CAP而言,它是AP(可用和分区容忍)。
[*]提供REST API,并支持结构化和无模式数据(JSON)。因此,它特别适合分析记录或监督数据。
[*]支持自动复制和跨集群复制(CCR)。
[*]强盛的“弹性堆栈”的一部分(Elasticsearch,Kibana,Logstash,Beats)。构造在可观察性领域中大量使用它。
何时使用Elasticsearch
[*]必要中比及高级的全文搜索。
[*]先进的机器学习功能(例如敲诈检测)必要近乎实时的全文搜索。
[*]具有高级工具支持(Kibana,Logstash,Beats)的搜索引擎。
[*]适用于大量数据集。
[*]使用半结构化数据(例如JSON,日志数据)。
何时不使用Elasticsearch
[*]仅必要基本的全文本搜索功能。
[*]必要符合ACID的主数据库(OLTP数据库)。
[*]数据集很小,只有结构化数据。
[*]无需复杂工具(Kibana,Logstash),仅必要全文搜索。
[*]当尖端但昂贵的功能(例如高级机器学习)不是关键要求时。
Elasticsearch即服务
[*]弹性云(多云)
[*]针对Elasticsearch的Aiven(多云)
[*]Amazon Elasticsearch服务
备择方案
[*]Apache Solr
[*]Splunk
[*]Algolia
人气:
迩来,Elasticsearch被广泛用作搜索引擎和应用程序的可观察性。结果,它在DB-Engines排名中排名第8,成为最受欢迎的数据库和最受欢迎的搜索引擎:
https://p1.pstatp.com/large/pgc-image/eceb73455f794783b79d370e0ceee34f> Image by Author (Data: DB-Engines)
在2020年Stack Overflow开发人员调查中,Elasticsearch排名第10位,这是全文搜索引擎的一项壮举:
https://p3.pstatp.com/large/pgc-image/612e8d6b895c41c38f44d14ef6601969> Source: Stack Overflow Developer Survey, 2020
趋势
比年来,由于云计算和微服务的兴起,可观察性引起了人们的极大兴趣。作为现代可观察性堆栈的基石,Elasticsearch比年来获得了巨大的关注:
https://p1.pstatp.com/large/pgc-image/93a152c4f8d449599397b1c7b31e65d1> Source: DB-Engines
Google趋势提供的数据还显示,比年来Elasticsearch的兴趣显着上升:
https://p9.pstatp.com/large/pgc-image/e6a96e0fe25747d7a618e808269043de> Source: Google Trends
8.Cassandra
在2000年代中期,Facebook迅速发展,必要大规模扩展的数据库。不幸的是,市场上没有可以满足Facebook扩展需求的数据库。受Google的Big Table论文(2006年)和Amazon的Dynamo论文(2007年)的影响,两位Facebook工程师Avinash Lakshman(Amazon Dynamo论文的合著者)和Prashant Malik于2008年将Cassandra开发为分布式Wide Column Store数据库。一个高度可扩展的数据库,在行业中广泛用于处置惩罚海量数据。
5个重要功能
[*]带有Apache License 2.0的开放式核心,分布式,宽列存储数据库。
[*]用作OLAP数据库(例如,数据仓库)来处置惩罚巨大的数据量。也用作时间序列数据库。
[*]提供线性程度缩放和具有自动分片功能的最具扩展性的数据库之一。就CAP而言,它是AP(可用和分区容忍)。
[*]具有自动复制和多数据中央复制的分散式数据库(无铅)。结果,它是容错的,没有单点故障。
[*]具有用户友好型和雷同SQL的查询语言:Cassandra查询语言(CQL)。
何时使用Cassandra
[*]作为典范的OLAP数据库,例如,数据仓库。
[*]作为具有大量写操作的时间序列数据库。
[*]Web Scale应用程序必要以线性可伸缩性处置惩罚大量的写入和读取操作。
[*]对于数据丢失可以接受的高耐用性使用案例。
何时不使用Cassandra
[*]作为必要ACID交易保证的主数据库(OLTP)。
[*]如果不必要线性可伸缩性或不必要高可用性。
[*]如果频仍删除数据,则其性能会下降(“墓碑”)。
[*]它基于JVM,而且必要更多的Node,并导致大量的Cloud费用。基于C ++的Cassandra兼容ScyllaDB是节省Cloud账单的更好选择。
卡桑德拉即服务
[*]DataStax Astra(多云)
[*]Apache Cassandra的Aiven(多云)
[*]Amazon Managed Apache Cassandra服务
备择方案
[*]HBase
[*]ScyllaDB
[*]Azure Cosmos数据库
[*]Google Cloud Bigtable
[*]亚马逊Keyspaces
人气:
Cassandra是最盛行的NoSQL数据库和最盛行的Wide Column Store数据库之一。它是第9个最受欢迎的数据库,如下所示:
https://p9.pstatp.com/large/pgc-image/f49ea6141d104016bf39d76bf7bd7e51> Image by Author (Data: DB-Engines)
Stack Overflow开发人员调查还将Cassandra排名为2020年的第12位:
https://p3.pstatp.com/large/pgc-image/438560907fac4d39a3fd7e6fa57baf14> Source: Stack Overflow Developer Survey, 2020
趋势
作为处置惩罚大量OLAP工作负载的领先数据库,Cassandra在2016年获得了巨大的关注,而且仍保持这一程度:
https://p1.pstatp.com/large/pgc-image/7514a7d846d74590bef121a7af5c401f> Source: DB-Engines
长期以来,Google趋势对Cassandra也表现出稳固的兴趣:
https://p3.pstatp.com/large/pgc-image/7a03fa40cddd481ab8bad1917a655bb4> Source: Google Trends
9. MariaDB
当Oracle收购Sun Microsystems时,由于Sun Microsystems拥有MySQL,MySQL的未来尚不清晰。MySQL的共同创建者Michael Widenius派生了MySQL并创建了MariaDB。MariaDB是一个关系数据库管理体系,与MySQL协议和MySQL客户端兼容。无需更改代码即可轻松地用MariaDB服务器替换MySQL服务器。与MySQL相比,MariaDB更受社区驱动。
5个重要功能
[*]具有GPL v2允许证的开源RDBMS。它具有两种允许模式:免费的社区服务器和贸易企业服务器。
[*]提供ACID交易保证(使用InnoDB引擎)。就CAP而言,它可以作为单个服务器提供即时的同等性。
[*]借助其存储引擎“ ColumnStore”,MariaDB提供具有大规模并行分布式数据架构的列式存储。它还通过其MaxScale和Spider Engine提供程度分区(分片)。因此,MariaDB也适互助为OLAP数据库。
[*]借助其图形计算引擎“ OQGRAPH”,它支持分层和复杂的图形数据范例。
[*]借助Xpand智能存储,它可以立即提供“分布式SQL”功能。结果,它每秒提供数百万个事务。
何时使用MariaDB
[*]数据是结构化(SQL),而且ACID事务保证是关键条件。
[*]在全球分布式数据库中应处置惩罚数百万个事务的环境下,必要使用“分布式SQL”。
[*]必要多主群集和多节点数据仓库(OLAP)。
[*]必要一个多模型数据库,即一个数据库来处置惩罚结构化,半结构化,图形和柱状数据。
[*]必要聚合数据库,即,一个用于OLTP,OLAP和Graph工作负载的数据库。
何时不使用MariaDB
[*]多主设备ACID事务是必须具备的功能。
[*]数据是半结构化的,即必要JSON数据和高度高级的查询功能。
[*]希望使用高级索引,例如降序,功能性和不可见性。
[*]必要高级身份验证和授权(例如密码重用策略,部分撤销)。
MariaDB即服务
[*]SkySQL(分布式SQL)
[*]适用于MariaDB的Amazon RDS
[*]适用于MariaDB的Azure数据库
备择方案
[*]的MySQL
[*]甲骨文
[*]PostgreSQL的
[*]Microsoft SQL服务器
[*]IBM Db2
[*]亚马逊Aurora
[*]Google Cloud Spanner
人气:
四大SQL数据库主导着SQL数据库域。作为该列表中最年轻的SQL数据库,MariaDB很难获得普及。
但是MariaDB做得很好,而且已经是最受欢迎的数据库之一,如下所示:
https://p3.pstatp.com/large/pgc-image/b57ccd832f6a4e66b08d4ca43cec54dd> Image by Author (Data: DB-Engines)
根据2020年Stack Overflow开发人员调查,它已经超过了很多成熟的数据库,例如Oracle和IBM DB2:
https://p1.pstatp.com/large/pgc-image/a4d612b06ff343809525522afca3ce6f> Source: Stack Overflow Developer Survey, 2020
趋向
凭借众多创新和分布式SQL功能,MariaDB是最盛行的SQL数据库之一,如下所示:
https://p3.pstatp.com/large/pgc-image/e5cd56bd76f642ad833f24ff73e40551> Source: DB-Engines
此外,如Google趋势所示,比年来它越来越受到关注:
https://p1.pstatp.com/large/pgc-image/e3f850c2895c473c84169217bf2f2a48> Source: Google Trends
10. IBM Db2
1966年,IBM为Apollo程序开发了首批数据库管理体系IMS(分层数据库)之一。当IBM工程师Edgar F. Codd发表有关关系数据库的开创性论文时,IBM不愿放弃他们的IMS数据库。甲骨文发布了第一个关系数据库后,IBM迅速改正了发展蹊径,并于1983年发布了Db2作为贸易支持的RDBMS。最初,IBM发行了用于IBM大型机的Db2。1987年,IBM发行了适用于Windows,Linux和Unix体系的Db2 LUW。在这里,我将讨论Db2 LUW,因为Db2眷属还有其他数据库。
多年以来,IBM Db2经历了很多重大变革,而且像Oracle一样发展了很多。
5个重要功能
[*]Db2是具有ACID交易保证的专有RDBMS。它具有差别的允许证:社区(免费),标准和高级(贸易)。
[*]支持结构化数据(SQL),半结构化数据(JSON)和图形数据的最先进的多模型数据库之一。
[*]它也是一个聚合数据库(或主数据库),而且通过IBM BLU Acceleration(内存中计算,大规模并行计算,基于列的Db2影子表)具有出色的OLAP支持。
[*]对AI的本地支持。
[*]通过Db2 pureScale提供程度缩放。
何时使用Db2
[*]是融合数据库还是主数据库(一个通用数据库)是关键要求。
[*]作为具有ACID事务保证的主数据库(OLTP数据库)。
[*]数据库中的AI功能是竞争上风所必须的。
[*]作为OLAP数据库(例如,数据仓库)。
[*]该公司已经在使用IBM Cloud或IBM Cloud Pack for Data。
何时不使用Db2
[*]如果公司想省钱或节省预算。
[*]多主设备ACID事务是必须具备的功能。
[*]数据是半结构化的,即具有高级查询功能的JSON数据。
[*]没有AI功能的纯SQL数据库是必须的。
[*]仅将Azure或Google Cloud用作云提供程序时。
Db2即服务
[*]IBM Db2 on Cloud
[*]AWS Marketplace上的Db2工作组
备择方案
[*]MySQL
[*]甲骨文
[*]PostgreSQL的
[*]Microsoft SQL服务器
[*]Maria数据库
[*]亚马逊Aurora
[*]Google Cloud Spanner
人气:
Db2曾经是市场的向导者,但由于数据库格局竞争现在是多方面的,因此在最近几年已经失去了知名度。
但是,它仍然是大中型企业中最常用的数据库之一,而且在盛行度中享有突出的地位:
https://p1.pstatp.com/large/pgc-image/5b8356c8fbd843849b61ce85ab0cca84> Image by Author (Data: DB-Engines)
在具有新近度偏差的Stack Overflow Developer调查中,其排名很低:
https://p9.pstatp.com/large/pgc-image/cc29233e6eb9460eb92813efd6359b52> Source: Stack Overflow Developer Survey, 2020
趋势
比年来,Db2也没有受到太多关注,如下所示:
https://p1.pstatp.com/large/pgc-image/135cb7e4e05f4ebf9c787a33e13c566d> Source: DB-Engines
Google趋势还证实了其持续下降的趋势:
https://p3.pstatp.com/large/pgc-image/2495ec90a5914338af5115339bab22eb> Source: Google Trends
结论
在此列表中,我显示了2021年要使用的十个数据库。RDBMS体系在该列表中占主导地位。MySQL和PostgreSQL是开源和免费数据库的向导者,紧随其后的是MS SQL。与MySQL兼容的MariaDB越来越受欢迎。
在贸易数据库中,Oracle在其最新版本中增加了很多增值功能,并朝着未来迈出了巨大的一步。尽管IBM Db2仍在大型构造中使用,但它会渐渐下降。
在NoSQL数据库中,MongoDB(文档数据库),Redis(内存中键值存储),Cassandra(宽列数据库)和Elasticsearch(全文搜索引擎)是它们领域的向导者。
该列表并不包含全部内容,而且很多紧张的数据库范例也无法像NewSQL数据库,Cloud Native Databases那样进入前十名。但这将对2021年的顶级数据库进行高层概述。
(本文由闻数起舞翻译自Maximilian Beckers的文章《Top 10 Databases to Use in 2021》,转载请注明出处,原文链接:https://towardsdatascience.com/top-10-databases-to-use-in-2021-d7e6a85402ba) 都不能存储图片和pdf等附件吧? 其实图形数据库neo4j在关联数据处理方面有很大优势 hbase,sqlite应该入选 转发了 转发了 转发了 转发了 转发了 转发了
页:
[1]
2