著名的数据库流行度排名网站DB-Engines统计了400多种数据库产品的流行度排名。那么为什么会出现这么多数据库呢?让我们来看看它们是怎么说的吧:
Oracle:企业需要数据库(Oracle是第一个商用的关系型数据库);
MySQL:Oracle不开源(MySQL是最流行的开源关系型数据库);
MariaDB:我们喜欢MySQL,但是不喜欢Oracle(MySQL被Oracle收购,MySQL之父Monty创建了MariaDB);
PostgreSQL:MySQL的功能不够完善(PostgreSQL是最先进的开源关系型数据库);
Microsoft SQL Server:微软拥抱开源(Microsoft SQL Server 2017开始提供Linux平台版本);
SQLite:一切皆可嵌入,而且4种数据类型就够用了(SQLite是安装最多的关系型数据库,使用动态数据类型);
IBM Db2:天下SQL出吾门(关系模型和SQL语言都来自IBM);
MongoDB:为什么我们要用JOIN和模式(Schema)?(MongoDB是最著名的文档数据库,采用模式自由的面向集合存储);
Apache CouchDB:为什么我们要有集合(Collection)?(支持多主复制的高可靠性文档数据库,没有集合的概念);
Redis:为什么我们要用文档(Document)?(Redis是最著名的键/值存储数据库、缓存和消息中间件);
Memcached:为什么我们要用硬盘?(Memcached是一个分布式内存对象缓存系统,不支持数据持久化);
Amazon DynamoDB:为什么要自己安装数据库?(DynamoDB是Amazon提供的键/值和文档数据库托管服务);
Bigtable:MongoDB对Web应用的扩展性不够好(Google说的);
Hbase:Bigtable不开源;
Cassandra:Bigtable不是由Facebook开发的;
Riak:Cassandra不是用Erlang语言编写的;
Neo4j:SQL不够关系!(著名的图数据库,以图结构存储对象以及它们之间的关系);
OrientDB:让我们把所有东西(文档、图、K-V、对象)都放到同一个数据库里吧;
Elasticsearch:MongoDB搜索功能不够强大(Elasticsearch是一个分布式大数据搜索和数据分析引擎);
Solr对Elasticsearch说:本是同根生,相煎何太急!(Solr和Elasticsearch都是基于Apache Lucene构建);
NewSQL:我们是数据库领域的后浪!!!