表 1 所示列出了每一类数据库的前 3~5 名,排名会不断变化,实时的排名参见 http://db-engines.com/en/ranking 网站。
大类 | 类别 | 前3~5名 | 说明 |
---|---|---|---|
SQL | 关系数据库 | Oracle、MySQL/MariaDB、SQL Server、PostgrcSQL、 DB2 | 遵循“表一记录”模型。按行存储在文件中(先第 1 行,然后第 2 行……) |
NoSQL | 时序数据库 | InfluxDB、RRDtool、Graphite、OpcnTSDB、Kdb+ | 存储时间序列数据,每条记录都带有时间戳。如存储从感应器采集到的数据 |
键/值数据库 | Redis、Memcached、Riak KV、Hazelcast、Ehcache | 遵循“键——值”模型,是最简单的数据库管理系统 | |
文档数据库 | MongoDB、Couchbase、Amazon DynamoDB、CouchDB、MarkLogic | 无固定结构,不同的记录允许有不同的列数和列类型。列允许包含多值,记录允许嵌套 | |
图数椐库 | Neo4j、OrientDB、Titan、Virtuoso、ArangoDB | 以“点——边”组成的网络(图结构)来存储数据 | |
搜索引擎 | Elasticsearch、Solr、Splunk、MarkLogic、Sphinx | 存储的目的是为了搜索,主要功能是搜索 | |
对象数据库 | Caché、db4o、Versant Object Database、ObjcctStore、Matisse | 受面向对象编程语言的启发,把数据定义为对象并存储在数据库中,包括对象之问的关系,如继承 | |
宽列数据库 | Cassandra、HBase、Accumulo | 按照列(由“键——值”对组成的列表)在数据文件中记录数据,以获得更好的请求及遍历效率。一行中的列数允许动态变化,且列的数目可达数百万,每条记录的关键码不同,支持多值列。 |
下面对排名靠前的开源数据库做一些简单介绍。