這么多種數(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)域中的后浪??????!
。。。
博君一笑,歡迎補充!