常见的数据库分类和选型

数据库常见分类&数据库对比

常见的数据库分类和选型

数据库排名

SQL vs NoSQL

数据库一般可以分为关系型数据库(SQL)和非关系型数据库(NoSQL:non-relational sql/Not Only SQL)。

常见的关系型数据库有:SQL Server,Oracle,Mysql,PostgreSQL。关系型数据库支持ACID(原子性、一致性、隔离性、耐用性),需要预先指定数据格式。

关系型数据库 (RDB) 是一种在表、行和列中构建信息结构的方法。RDB 可以通过联接表来在信息之间建立关联或关系,从而使用户可以轻松理解和分析各种数据点之间的关系。

常见的非关系型数据库有:Redis(key-value数据库),HBase(列式数据库),Neo4j(图数据库),MongoDB(文档型数据库)等等。非关系型数据库一般不保证ACID(或者部分保证),非关系型数据库是相对于关系型数据库来说的。其特点自然是关系型数据库不足的地方。非关系型数据库一般都是灵活的、容易扩展的、高可用的,一般都支持分布式和高并发。

OLTP vs OLAP

On-Line Transaction Processing(联机事务处理) vs On-Line Analytical Processing(联机分析处理)

OLTP主要是面向用户的事务操作,强调的是事务(写)。常见的OLTP型数据库就是各种关系型数据库。

OLAP主要是面向用户的决策分析,强调的是分析(读)。常见的OLAP型数据库有基于Hadoop分布式文件系统的Hive等,以及MPP数据库ClickHouse、GreenPlum。(Massively Parallel Processing大规模并行处理)等

可以说OLAP依赖于OLTP产生的数据,OLAP的分析是基于OLTP所产生的数据。

列式数据库 vs 行式数据库

列式数据库是以列存储数据的数据库,主要适合批量数据处理和即时查询。相对应的就是常见的行式数据库,比如常见的MySQL、Oracle等。

行式数据库模式更适合OLTP,列式数据库模式更适合OLAP。

列式存储的优势:

  • 自动索引:数据按列存储,天然就是索引。
  • 利于数据压缩:同一列的数据都是相同类型的,相同类型的数据,数据压缩效率更高。

这篇论文,对比了行存储&列存储的查询对比: Column-Stores vs. Row-Stores: How Different Are They Really?

下面是常见的列式数据库的对比, 对比信息来源db-engines: Cassandra vs ClickHouse vs HBase

其他一些常见的数据库