著名的數(shù)據(jù)庫流行度排名網(wǎng)站DB-Engines統(tǒng)計了400多種數(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是最先進的開源關(guān)系型數(shù)據(jù)庫);
Microsoft SQL Server:微軟擁抱開源(Microsoft SQL Server 2017開始提供Linux平臺版本);
SQLite:一切皆可嵌入,而且4種數(shù)據(jù)類型就夠用了(SQLite是安裝最多的關(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),不支持數(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)域的后浪?。?!
該文章在 2024/10/2 9:00:05 編輯過