这么多种数据库都是用来干啥的?

作者: 不剪发的Tony老师
毕业于北京航空航天大学,十多年数据库管理与开发经验,目前在一家全球性的金融公司从事数据库架构设计。CSDN学院签约讲师以及GitChat专栏作者。csdn上的博客收藏于以下地址:https://tonydong.blog.csdn.net




大家好,我是只谈技术不剪发的 Tony 老师。

著名的数据库流行度排名网站 DB-Engines 统计了 360 多种数据库产品。那么为什么会出现这么多数据库呢?让我们来看看它们自己是怎么说的吧:

Oracle:企业需要数据库(Oracle 是第一个商用的关系型数据库);

MySQL:Oracle 不开源(MySQL 是最受欢迎的开源关系型数据库);

MariaDB:我们喜欢 MySQL,但是不喜欢 Oracle(MySQL 被 Oracle 收购,MySQL之父 Monty 创建了 MariaDB 分支);

PostgreSQL:MySQL 的功能不够完善(PostgreSQL 是最先进的开源关系型数据库);

Microsoft SQL Server:我们拥抱 Linux(Microsoft SQL Server 2017 开始提供了 Linux 平台版本);

SQLite:一切皆可嵌入,而且 4 种数据类型就够用了(SQL 是安装最多的关系型数据库,使用动态数据类型);

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:我们是数据库领域中的后浪🌊🌊🌊!

。。。

博君一笑,欢迎补充!