这么多种数据库都是用来干啥的?
作者: 不剪发的Tony老师
毕业于北京航空航天大学,十多年数据库管理与开发经验,目前在一家全球性的金融公司从事数据库架构设计。CSDN学院签约讲师以及GitChat专栏作者。csdn上的博客收藏于以下地址:https://tonydong.blog.csdn.net
著名的数据库流行度排名网站 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:我们是数据库领域中的后浪🌊🌊🌊!