数据库软件哪个好用(目前最靠谱的10个数据库软件)
mysql,oracle,postgresql,microsoft sql server,mongodb,redis,elasticsearch,cassandra,mariadb,ibm db2
> 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:
> image by author (data: db-engines)
2020年stack overflow开发人员调查将mysql列为2020年最受欢迎的数据库:
> source: stack overflow developer survey, 2020
趋势
拥有25年历史的mysql并不是目前最流行的数据库。但是与其他较旧的数据库不同,它仍然保持较高的吸引力,如下所示:
> source: db-engines
此外,google趋势在过去几年中显示出相对稳定的图表:
> 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排名最高的数据库系统:
> image by author (data: db-engines)
但是,在stack overflow开发人员调查中,由于该列表受开源数据库的支配,因此它排名第8位:
> source: stack overflow developer survey, 2020
趋势
oracle可能以其最新版本赢得了大奖。结果,它在最近几年中获得了很大的吸引力。考虑到市场正在转向开源数据库,这是一个壮举:
> source: db-engines
此外,google的趋势还显示出oracle的曲线非常平坦,这在商业数据库中很少见:
> 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是最古老的开源和免费数据库之一。它具有巨大的社区支持,并在社区和行业中得到使用。
根据数据库引擎,它是最受欢迎的数据库之一:
> image by author (data: db-engines)
根据stack overflow开发人员调查,它是2020年第二受欢迎的数据库:
> source: stack overflow developer survey, 2020
趋势
由于其先进的功能和创新,即使在postgresql引入30年后,它也获得了很多宣传,如下所示:
> source: db-engines
google趋势在最近几年也显示出对postgresql的吸引力增加,这表明对postgresql的兴趣日益增加:
> 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排名,它仍然是第三受欢迎的数据库:
> image by author (data: db-engines)
它也是stack overflow developer调查中第三大最受欢迎的数据库:
> source: stack overflow developer survey, 2020
趋势
ms sql是此列表中最古老的数据库之一。尽管它是一个稳定可靠的数据库,但它并不是最具创新性或先进性的数据库,并且呈下降趋势,如db-engines趋势所示:
> source: db-engines
多年来,google趋势显示ms sql呈下降趋势,并且在2021年也不会改变:
> 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近年来正迅速普及,并且在数据库引擎排名中排名第五。
> image by author (data: db-engines)
2020年stack overflow开发人员调查还使mongodb排名第五:
> source: stack overflow developer survey, 2020
趋向
如数据库引擎所示,mongodb近年来正逐渐受到青睐:
> source: db-engines
google趋势还显示了mongodb的上升趋势:
> 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在行业中非常受欢迎,如下所示:
> image by author (data: db-engines)
stack overflow开发人员调查还将redis列为整体排名第六的最受欢迎的数据库:
> source: stack overflow developer survey, 2020
趋势
随着云和微服务的兴起,redis在最近几年受到了极大的关注,如下所示:
> source: db-engines
自成立以来,google趋势也显示了redis趋势的直线上升:
> 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,成为最受欢迎的数据库和最受欢迎的搜索引擎:
> image by author (data: db-engines)
在2020年stack overflow开发人员调查中,elasticsearch排名第10位,这是全文搜索引擎的一项壮举:
> source: stack overflow developer survey, 2020
趋势
近年来,由于云计算和微服务的兴起,可观察性引起了人们的极大兴趣。作为现代可观察性堆栈的基石,elasticsearch近年来获得了巨大的关注:
> source: db-engines
google趋势提供的数据还显示,近年来elasticsearch的兴趣显着上升:
> 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个最受欢迎的数据库,如下所示:
> image by author (data: db-engines)
stack overflow开发人员调查还将cassandra排名为2020年的第12位:
> source: stack overflow developer survey, 2020
趋势
作为处理大量olap工作负载的领先数据库,cassandra在2016年获得了巨大的关注,并且仍保持这一水平:
> source: db-engines
长期以来,google趋势对cassandra也表现出稳定的兴趣:
> 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做得很好,并且已经是最受欢迎的数据库之一,如下所示:
> image by author (data: db-engines)
根据2020年stack overflow开发人员调查,它已经超过了许多成熟的数据库,例如oracle和ibm db2:
> source: stack overflow developer survey, 2020
趋向
凭借众多创新和分布式sql功能,mariadb是最流行的sql数据库之一,如下所示:
> source: db-engines
此外,如google趋势所示,近年来它越来越受到关注:
> 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曾经是市场的领导者,但由于数据库格局竞争现在是多方面的,因此在最近几年已经失去了知名度。
但是,它仍然是大中型企业中最常用的数据库之一,并且在流行度中享有突出的地位:
> image by author (data: db-engines)
在具有新近度偏差的stack overflow developer调查中,其排名很低:
> source: stack overflow developer survey, 2020
趋势
近年来,db2也没有受到太多关注,如下所示:
> source: db-engines
google趋势还证实了其持续下降的趋势:
> source: google trends
结论
在此列表中,我显示了2021年要使用的十个数据库。rdbms系统在该列表中占主导地位。mysql和postgresql是开源和免费数据库的领导者,紧随其后的是ms sql。与mysql兼容的mariadb越来越受欢迎。
在商业数据库中,oracle在其最新版本中增加了许多增值功能,并朝着未来迈出了巨大的一步。尽管ibm db2仍在大型组织中使用,但它会逐渐下降。
在nosql数据库中,mongodb(文档数据库),redis(内存中键值存储),cassandra(宽列数据库)和elasticsearch(全文搜索引擎)是它们领域的领导者。
该列表并不包含所有内容,并且许多重要的数据库类型也无法像newsql数据库,cloud native databases那样进入前十名。但这将对2021年的*数据库进行高层概述。