亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 5393 | 回復(fù): 1
打印 上一主題 下一主題

[MongoDB] MongoDB 與 CouchDB 全方位對比 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2012-02-22 15:31 |只看該作者 |倒序?yàn)g覽
MongoDB 與 CouchDB 全方位對比






本文見于MongoDB官方網(wǎng)站,MongoDB與CouchDB 很相似,他們都是文檔型存儲,數(shù)據(jù)存儲格式都是JSON型的,都使用Javascript進(jìn)行操作,都支持Map/Reduce。但是其實(shí)二者有著很多本質(zhì)的區(qū)別,本文透過現(xiàn)象追尋本質(zhì),讓你更好的理解MongoDB 與CouchDB。nosqlfan 翻譯如下:

原文鏈接:Comparing Mongo DB and Couch DB

1.MVCC(Multiversion concurrency control)
MongoDB 與 CouchDB 的一大區(qū)別就是CouchDB 是一個MVCC的系統(tǒng),而MongoDB是一個update-in-place 的系統(tǒng)。這二者的區(qū)別就是,MongoDB 進(jìn)行寫操作時都是即時完成寫操作,寫操作成功則數(shù)據(jù)就寫成功了,而CouchDB 一個支持多版本控制的系統(tǒng),此類系統(tǒng)通常支持多個結(jié)點(diǎn)寫,而系統(tǒng)會檢測到多個系統(tǒng)的寫操作之間的沖突并以一定的算法規(guī)則予以解決。

2.水平擴(kuò)展性
在擴(kuò)展性方面,CouchDB 使用replication 去做,而MongoDB 的replication 僅僅用來增強(qiáng)數(shù)據(jù)的可靠性,MongoDB 在實(shí)現(xiàn)水平擴(kuò)展性方面使用的是Sharding。(據(jù)說CouchDB 也有開發(fā)分片功能的計(jì)劃)

3.數(shù)據(jù)查詢操作
這個區(qū)別在用戶接口上了,MongoDB 與傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)類似,支持動態(tài)查詢,即使在沒有建立索引的行上,也能進(jìn)行任意的查詢。而 CouchDB 不同,CouchDB 不支持動態(tài)查詢,你必須為你的每一個查詢模式建立相應(yīng)的view,并在此view的基礎(chǔ)上進(jìn)行查詢。

4.原子性
這一點(diǎn)上兩者比較一致,都支持針對行的原子性修改(concurrent modifications of single documents),但不支持更多的復(fù)雜事務(wù)操作。

5.數(shù)據(jù)可靠性
CouchDB 是一個”crash-only” 的系統(tǒng),你可以在任何時候停掉CouchDB 并能保證數(shù)據(jù)的一致性。而MongoDB 在不正常的停掉后需要運(yùn)行 repairDatabase() 命令來修復(fù)數(shù)據(jù)文件,在1.7.5 版本后支持單機(jī)可靠的 –dur命令。

6.Map/Reduce
MongoDB 和 CouchDB 都支持Map/Reduce ,不同的是MongoDB 只有在數(shù)據(jù)統(tǒng)計(jì)操作中會用到,而CouchDB 在變通查詢時也是使用 Map/Reduce。

7.使用 javascript
MongoDB 和CouchDB 都支持javascript,CouchDb 用javascript來創(chuàng)建view。MongoDB 使用JSON作為普通數(shù)據(jù)庫操作的表達(dá)式。當(dāng)然你也可以在操作中包含javascript語句。MongoDB還支持服務(wù)端的javascript腳本(running arbitrary javascript functions server-side),當(dāng)然,MongoDB 的Map/Reduce 函數(shù)也是javascript 格式的。

8.REST
CouchDB 是一個RESTFul 的數(shù)據(jù)庫,其操作完全走HTTP協(xié)議,而MongoDB是走的自己的二進(jìn)制協(xié)議。MongoDB Server在啟動時可以開放一個HTTP 的接口供狀態(tài)監(jiān)控。

9.性能
此處主要列舉了MongoDB 自己具有高性能的原因
采用二進(jìn)制協(xié)議,而非CouchDB REST的HTTP 協(xié)議
使用Momary Map 內(nèi)存映射的做法
collection-oriented,面向集合的存儲,同一個collection的數(shù)據(jù)是連續(xù)存儲的
update-in-place 直接修改,而非使用MVCC的機(jī)制
使用C++ 編寫
10.適用場景
如果你在構(gòu)建一個 Lotus Notes 型的應(yīng)用,我們推薦使用CouchDB,主要是由于它的MVCC機(jī)制。另外如果我們需要master-master 的架構(gòu),需要基于地理位置的數(shù)據(jù)分布,或者在數(shù)據(jù)結(jié)點(diǎn)可能不在線的情況下,我們推薦使用CouchDB。
如果你需要高性能的存儲服務(wù),那我們推薦 MongoDB,比如用于存儲大型網(wǎng)站的用戶個人信息,比如用于構(gòu)建在其它存儲層之上的Cache層。
如果你的需求中有大量 update 操作,那么使用MongoDB吧。就像我們在例子updating real time analytics counters 中的一樣,對于那種經(jīng)常變化的數(shù)據(jù),比如瀏覽量,訪問數(shù)之類的數(shù)據(jù)存儲

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2012-02-24 17:33 |只看該作者
謝謝分享
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP