這么多種數(shù)據(jù)庫都是用來干啥的?

作者: 不剪發(fā)的Tony老師
畢業(yè)于北京航空航天大學(xué),十多年數(shù)據(jù)庫管理與開發(fā)經(jīng)驗,目前在一家全球性的金融公司從事數(shù)據(jù)庫架構(gòu)設(shè)計。CSDN學(xué)院簽約講師以及GitChat專欄作者。csdn上的博客收藏于以下地址:https://tonydong.blog.csdn.net




大家好,我是只談技術(shù)不剪發(fā)的 Tony 老師。

著名的數(shù)據(jù)庫流行度排名網(wǎng)站 DB-Engines 統(tǒng)計了 360 多種數(shù)據(jù)庫產(chǎn)品。那么為什么會出現(xiàn)這么多數(shù)據(jù)庫呢?讓我們來看看它們自己是怎么說的吧:

Oracle:企業(yè)需要數(shù)據(jù)庫(Oracle 是第一個商用的關(guān)系型數(shù)據(jù)庫);

MySQL:Oracle 不開源(MySQL 是最受歡迎的開源關(guān)系型數(shù)據(jù)庫);

MariaDB:我們喜歡 MySQL,但是不喜歡 Oracle(MySQL 被 Oracle 收購,MySQL之父 Monty 創(chuàng)建了 MariaDB 分支);

PostgreSQL:MySQL 的功能不夠完善(PostgreSQL 是最先進(jìn)的開源關(guān)系型數(shù)據(jù)庫);

Microsoft SQL Server:我們擁抱 Linux(Microsoft SQL Server 2017 開始提供了 Linux 平臺版本);

SQLite:一切皆可嵌入,而且 4 種數(shù)據(jù)類型就夠用了(SQL 是安裝最多的關(guān)系型數(shù)據(jù)庫,使用動態(tài)數(shù)據(jù)類型);

IBM Db2:天下 SQL 出吾門(關(guān)系模型和 SQL 語言都來自 IBM 公司);

MongoDB:為什么要用 JOIN 和模式(Schema)?(MongoDB 是最著名的文檔數(shù)據(jù)庫,采用模式自由的面向集合存儲);

Apache CouchDB:為什么要有集合(Collection)?(支持多主復(fù)制的高可靠性文檔數(shù)據(jù)庫,沒有集合的概念);

Redis:為什么要用文檔(Document)?(Redis 是最著名的鍵/值存儲數(shù)據(jù)庫、緩存和消息中間件);

Memcached:為什么我們要用硬盤?(Memcached 是一個分布式內(nèi)存對象緩存系統(tǒng),不支持?jǐn)?shù)據(jù)持久化);

Amazon DynamoDB:為什么要自己安裝數(shù)據(jù)庫?(DynamoDB 是 Amazon 提供的鍵/值和文檔數(shù)據(jù)庫托管服務(wù));

Bigtable:MongoDB 對 Web 應(yīng)用的擴展性不夠好(Google 說的);

Hbase:Bigtable 不開源;

Cassandra:Bigtable 不是由 Facebook 開發(fā)的;

Riak:Cassandra 不是用 Erlang 語言編寫的;

Neo4j:SQL 不夠關(guān)系?。ㄖ膱D形數(shù)據(jù)庫,以圖結(jié)構(gòu)存儲對象之間的關(guān)系);

OrientDB:讓我們把所有東西(文檔、圖、K-V、對象)都放到同一個數(shù)據(jù)庫里吧;

Elasticsearch:MongoDB 搜索功能不夠強大(Elasticsearch 是一個分布式大數(shù)據(jù)搜索和數(shù)據(jù)分析引擎);

Solr 對 Elasticsearch 說:本是同根生,相煎何太急?。⊿olr 和 Elasticsearch 都是基于 Apache Lucene 構(gòu)建);

NewSQL:我們是數(shù)據(jù)庫領(lǐng)域中的后浪??????!

。。。

博君一笑,歡迎補充!