暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

从dbdb.io看数据库发展现状

韩锋频道 2021-12-16
724

dbdb.io,是卡内基梅隆大学维护的全球数据库信息库,其中收录了全球700多种数据库产品,其包含数据库的开发者、国家、起始年份、项目类型、开发语言、衍生来源、兼容性、适配系统、开源协议等多种信息。说明下,这里收集的信息并未覆盖完全,可能有所遗漏,但我们可从中对当前数据库发展现状一窥端倪。本文尝试从多个指标进行分析,详情可参考网站:https://dbdb.io


1. 行业分析篇

❖ Country(TOP10)

该网站总计收录775种数据库。从国家角度来看,美国占据超过半数的比例,中国共收录有45款产品。较为熟知的产品有TDSQL、GaussDB、TiDB、Oceanbase、GBase、PolarDB、ShardingSphere、SequoiaDB、Kylin、Doris、KunlunDB、RadonDB等,涵盖传统集中式数据库、分布式数据库、数据仓库、云(原生)数据库、数据库中间件形态等多种。但从另一个国内知名三方网站墨天轮收录情况来看,后者收录有189款产品。dbdb.io对中国产品的收录还是偏少,分析其收录对象大多为开源、云或参与到海外的产品,相信是与海外知名度有关。

❖ License(TOP10)

从授权方式来看,商业闭源有214种,占比总体的28%,也就是近3/4的产品是采用开源方式。从下面各开源协议产品来看,Apache、MIT、BSD等较为宽松的协议产品相对较多。下面将主要协议中较为熟悉的产品整理如下,需要说明的是国产数据库产品例如openGauss、OceanBase采用中国推出的开源协议-Mulan。其相较于BSD协议更为宽松和自由。

❖ Programming Languages(TOP10)

从编程语言来看,C/C++仍然占据主导地位,但Java的表现有些意外。后者在性能方面,一致被人所诟病,但仍然有如此多产品采用Java。此外,Go的表现也不错。

❖ Compatible With(TOP10)

从兼容性角度来看,最为流行的两款开源数据库MySQL、PostgreSQL成为最大赢家。从生态推广角度来看,兼容性无疑是个不错的选择,可以充分地共享开源生态,更好地推广产品落地。下文整理较为熟悉的一些产品,这其中有部分产品是兼容两种的生态,其更具优势。

❖ Derived From(TOP10)

从发展起源来看,仍然是PostgreSQL、MySQL两大开源数据库占比最高。很多数据库产品多是源自这两个产品。下表罗列出比较熟悉的一些产品。

❖ Embeds Uses(TOP10)

有些数据库产品是嵌入了其他产品。这部分就展示了被内嵌的数据库产品分列。RocksDB作为一款优秀的单机数据库,被嵌入最多。此外,常见的MySQL、PostgreSQL也有被嵌入。这其中ShardingSphere比较特殊,它支持多种底层数据源,因此可嵌入MySQL或者PostgreSQL,都是可以的。

❖ Project Types

从商业模式来看,开源占据了大多数,这也与来自其他三方统计数据吻合。可以说开源促进了数据库产业发展。


2. 技术功能篇

❖ System Architecture

从系统架构来说,数据库经历了从单体-集中-分布式的道路。资源共享层面,也逐步走到shared-nothing的模式居多。从统计数据来看,Shared-Nothing占据了大部分。

❖ Data Model

从数据模型来看,关系模型仍然占据着主导地位,键值、文档类型紧随其后。这也是数据库使用的最常见的几类场景。

❖ Concurrency Control

从并发控制来看,多版本并发控制(MVCC)已然成为主流,其他基于乐观并发控制、两阶段锁并发控制也有一些。

❖ Isolation Levels

从隔离级别来看,数据库产品一般都会支持多种。最为保守的Serializable支持最为广泛,其次是RC、RR等。

❖ Storage Architecture

存储架构方面,基于Disk产品仍然占据多数,内存及混合存储方式次之。

❖ Storage Organization

存储组织方面,基于日志结构和堆结构占据大部分。

❖ Hardware Acceleration

从整体占比来说,明确使用特有硬件加速的数据库产品还很少。近些年来硬件发展迅速,数据产品面向硬件特性,仍然有较长的路要走。这里我们找到一些典型产品,如使用RDMA的PolarDB、使用FPGA的Netezza等。

❖ Checkpoints

无阻塞、一致性检查点占多数。

❖ Compression

基于字典的压缩,占据多数。

❖ Indexes

B+树与Hash占据多数。

❖ Joins

哈希、嵌套、合并排序三个类占据多数,但仍有不少产品不支持关联查询。

❖ Logging

物理、逻辑日志占多数。

❖ Parallel Execution

并行执行的技术使用,整体占据还是极少数。

❖ Query Compilation

代码生成、动态编译技术在数据库中有所使用。

❖ Query Execution

按行处理、向量化处理,是查询执行方式的主要。

❖ Foreign Keys

❖ Stored Procedures

❖ Views






韩锋频道:

关注技术、管理、随想。


长按扫码可关注








文章转载自韩锋频道,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论