当前位置:  开发笔记 > 数据库 > 正文

MongoDB与CouchDB(速度优化)

如何解决《MongoDB与CouchDB(速度优化)》经验,为你挑选了3个好方法。

我做了一些速度测试来比较MongoDB和CouchDB.测试时仅插入.我使MongoDB比CouchDB快15倍.我知道这是因为套接字vs http.但是,对我来说非常有趣的是如何在CouchDB中优化插入?

测试平台:Windows XP SP3 32位.我使用了最新版本的MongoDB,MongoDB C#驱动程序和最新版本的CouchDB for Windows 安装包.

谢谢!



1> mikeal..:

只是迭代套接字与HTTP和fsync与内存中的对话.

默认情况下,MongoDB不会在写入调用时返回响应.您只需将数据写入套接字并假设它在数据库中并且可用.在并发负载,这可能会得到备份并没有知道蒙戈多快的好办法确实是,除非你使用可选的呼叫,一旦数据可用,将返回写入响应.

我不是说Mongo插入性能不比Couch快,插入内存比fsyncing到光盘要快得多,这里更大的区别在于MongoDB和CouchDB在一致性和持久性方面的目标差异.但是我见过的用于测试Mongo的所有"性能"工具都使用默认的写入API,因此您并没有真正测试插入性能,而是测试了刷新到套接字的速度.

我已经看到很多基准测试显示Mongo比Redis和memcached更快,因为他们没有意识到Redis和Memcached在数据在内存中时返回响应而Mongo没有.蒙戈绝对超过Redis的快:)



2> JasonSmith..:

为了以批量方式将大量数据插入到数据库中,CouchDB支持批量插入,这些插入在HTTP批量文档API下的wiki中进行了描述.

此外,请查看delayed_commits配置选项以及batch=ok上述链接中描述的选项.这些选项启用类似的内存缓存行为,并对磁盘进行定期同步.


当然,MongoDB也支持批量插入......再次使它比Couch快15倍.

3> TTT..:

我不认为套接字和http之间的区别是唯一的区别.差异还与磁盘同步(fsync)有关.这会影响耐久性.MongoDB首先将所有内容存储在RAM中,它只会以特定间隔同步到磁盘,除非您明确告诉MongoDB执行fsync.

阅读有关耐久性和MongoDB的信息:http://blog.mongodb.org/post/381927266/what-about-durability和fsync:http://www.mongodb.org/display/DOCS/fsync+Command

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有