這么多種數(shù)據(jù)庫(kù)都是用來(lái)干啥的?
作者: 不剪發(fā)的Tony老師
畢業(yè)于北京航空航天大學(xué),十多年數(shù)據(jù)庫(kù)管理與開(kāi)發(fā)經(jīng)驗(yàn),目前在一家全球性的金融公司從事數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì)。CSDN學(xué)院簽約講師以及GitChat專(zhuān)欄作者。csdn上的博客收藏于以下地址:https://tonydong.blog.csdn.net
著名的數(shù)據(jù)庫(kù)流行度排名網(wǎng)站 DB-Engines 統(tǒng)計(jì)了 360 多種數(shù)據(jù)庫(kù)產(chǎn)品。那么為什么會(huì)出現(xiàn)這么多數(shù)據(jù)庫(kù)呢?讓我們來(lái)看看它們自己是怎么說(shuō)的吧:
Oracle:企業(yè)需要數(shù)據(jù)庫(kù)(Oracle 是第一個(gè)商用的關(guān)系型數(shù)據(jù)庫(kù));
MySQL:Oracle 不開(kāi)源(MySQL 是最受歡迎的開(kāi)源關(guān)系型數(shù)據(jù)庫(kù));
MariaDB:我們喜歡 MySQL,但是不喜歡 Oracle(MySQL 被 Oracle 收購(gòu),MySQL之父 Monty 創(chuàng)建了 MariaDB 分支);
PostgreSQL:MySQL 的功能不夠完善(PostgreSQL 是最先進(jìn)的開(kāi)源關(guān)系型數(shù)據(jù)庫(kù));
Microsoft SQL Server:我們擁抱 Linux(Microsoft SQL Server 2017 開(kāi)始提供了 Linux 平臺(tái)版本);
SQLite:一切皆可嵌入,而且 4 種數(shù)據(jù)類(lèi)型就夠用了(SQL 是安裝最多的關(guān)系型數(shù)據(jù)庫(kù),使用動(dòng)態(tài)數(shù)據(jù)類(lèi)型);
IBM Db2:天下 SQL 出吾門(mén)(關(guān)系模型和 SQL 語(yǔ)言都來(lái)自 IBM 公司);
MongoDB:為什么要用 JOIN 和模式(Schema)?(MongoDB 是最著名的文檔數(shù)據(jù)庫(kù),采用模式自由的面向集合存儲(chǔ));
Apache CouchDB:為什么要有集合(Collection)?(支持多主復(fù)制的高可靠性文檔數(shù)據(jù)庫(kù),沒(méi)有集合的概念);
Redis:為什么要用文檔(Document)?(Redis 是最著名的鍵/值存儲(chǔ)數(shù)據(jù)庫(kù)、緩存和消息中間件);
Memcached:為什么我們要用硬盤(pán)?(Memcached 是一個(gè)分布式內(nèi)存對(duì)象緩存系統(tǒng),不支持?jǐn)?shù)據(jù)持久化);
Amazon DynamoDB:為什么要自己安裝數(shù)據(jù)庫(kù)?(DynamoDB 是 Amazon 提供的鍵/值和文檔數(shù)據(jù)庫(kù)托管服務(wù));
Bigtable:MongoDB 對(duì) Web 應(yīng)用的擴(kuò)展性不夠好(Google 說(shuō)的);
Hbase:Bigtable 不開(kāi)源;
Cassandra:Bigtable 不是由 Facebook 開(kāi)發(fā)的;
Riak:Cassandra 不是用 Erlang 語(yǔ)言編寫(xiě)的;
Neo4j:SQL 不夠關(guān)系!(著名的圖形數(shù)據(jù)庫(kù),以圖結(jié)構(gòu)存儲(chǔ)對(duì)象之間的關(guān)系);
OrientDB:讓我們把所有東西(文檔、圖、K-V、對(duì)象)都放到同一個(gè)數(shù)據(jù)庫(kù)里吧;
Elasticsearch:MongoDB 搜索功能不夠強(qiáng)大(Elasticsearch 是一個(gè)分布式大數(shù)據(jù)搜索和數(shù)據(jù)分析引擎);
Solr 對(duì) Elasticsearch 說(shuō):本是同根生,相煎何太急?。⊿olr 和 Elasticsearch 都是基于 Apache Lucene 構(gòu)建);
NewSQL:我們是數(shù)據(jù)庫(kù)領(lǐng)域中的后浪??????!