為什么會有這么多種的數(shù)據(jù)庫
Paul Graham向我們展示了一個有趣的比較各種編程語言的方法(原文):闡述各種編程語言都是用來解決什么問題的。我發(fā)現(xiàn)這種方法放在數(shù)據(jù)庫上同樣好用:
Oracle: 我們需要企業(yè)級數(shù)據(jù)庫。
MySQL: Oracle不開源。
PostgreSQL: MySQL的功能不夠多。
SQLite: 你可以把我嵌入到任何地方。這樣,4種數(shù)據(jù)庫夠大家用了。
MongoDB: 為什么我們要用join和模式(schema)?
CouchDB: 為什么我們要有集合(collection)?
Redis: 為什么我們要面向文檔?
Memcached: 為什么我們要用硬盤?
Neo4j: SQL缺乏足夠的關(guān)系。
Bigtable: MongoDB的對web的擴展性不管好。
Hbase: Bigtable不開源。
Cassandra: Bigtable不是Facebook開發(fā)的。
Riak: Cassandra不是用Erlang語言編寫的。
OrientDB: 讓我們把所有東西都放到同一個數(shù)據(jù)庫里!
英文原文:What Databases Fix