http://blog.csdn.net/chszs
一、概述
Apache CouchDB和CouchBase兩個NoSQL資料庫,都是開源、免費的NoSQL文檔型資料庫,都使用了JSON作為其文檔格式。Apache CouchDB和CouchBase的相似性極高,但也有不少不同之處。基本上CouchBase結合了Apache CouchDB和MemBase兩種資料庫的功能特性而構建的。CouchDB的面向文檔的資料模型、索引和查詢功能與MemBase分布式索引值資料模型相結合、高效能、易於擴充、始終保持接通的能力,這就是CouchBase。
簡而言之,
CouchBase = CouchDB + MemBase
但是,CouchBase並非CouchDB的新版本,相反,它實際上是MemBase的新版本。CouchBase Server實際上是MemBase Server的新名字。CouchBase並非CouchDB的替代,而是MemBase的替代版本。CouchBase仍然使用了Memcached協議,而沒有使用CouchDB的RESTful風格的API。同時,CouchDB仍然是CouchDB,是Apache旗下的項目,由Apache負責維護和演化。而且,CouchDB並非過時的CouchBase,CouchDB仍然是一個比較活躍的開源項目。而CouchBase是另一個完全獨立的項目。
二、CouchDB和CouchBase的相同之處:
1)CouchDB和CouchBase兩者都是NoSQL文檔資料庫,都使用了JSON作為其文檔格式。
2)CouchDB和CouchBase兩者都使用了相同的索引和查詢方法。
3)CouchDB和CouchBase兩者都使用了相同的複製系統的方法,除了P2P複製。
儘管CouchBase的開發結合了CouchDB和MemBase的功能特性,但是CouchDB和CouchBase還是有很多的不同之處,尤其是在叢集、緩衝、許可證等方面。
三、CouchDB和CouchBase的不同之處:
1、叢集系統
CouchBase內建了一個叢集系統,允許資料自動跨多種節點傳播。而CouchDB是一個單節點的解決方案,支援P2P複製技術,它更適合分散式的系統,以及適合不需要把資料傳播到多個節點的情境。
2、緩衝系統
CouchBase與MemBase相似,它內建了一個基於Memcached的緩衝技術,始終如一地提供了亞毫秒級的讀寫效能,在每個節點上每秒可執行上百萬個操作。Apache CouchDB是一個基於磁碟的資料庫,通常它更適合超低延遲或輸送量需求不高的場合。
3、許可證系統
CouchBase不完全是開源、免費的軟體。它有兩個版本:社區版(免費、不包含最新的Bug修複)和企業版(使用有限制、需經過CouchBase公司的審核,還有一些很多人覺得無法接受的其他條款限制)。
CouchDB是一個開源、免費的軟體(沒有附帶任何條件),它基於Apache License 2.0許可證。
4、其它的不同
CouchBase不支援以下CouchDB的特性:
1)RESTful API(只用於查看,無CRUD操作)
2)P2P複製
3)支援CouchApps
4)Futon(提供了不同的管理介面)
5)文檔ID
6)資料庫的概念(這裡只有桶Bucket)
7)在CouchDB資料庫和CouchBase Server之間做複製
8)明確的附件(你必須儲存另外的檔案作為新索引值對)
9)CouchBase中的一切操作都使用了HTTP API,這與CouchDB不同(你需要使用CouchBase Server的SDK或其它實驗性的用戶端庫,無需curl和wget使用經驗)
10)CouchDB API(CouchBase使用了Memcached的API來代替)
11)在CouchBase中,不能通過瀏覽器完成所有工作,而在CouchDB中則可以(使用CouchBase必須寫伺服器端的應用。)
12)使用CouchBase,開發兩層架構的Web應用是不可能的,而使用CouchDB則可以(使用CouchBase必須寫伺服器端的應用來適配瀏覽器和資料庫,就像關聯式資料庫那樣。)