mongodb
http://groups.google.com/group/pongba/browse_thread/thread/d79e9cf24937f572#
MongoDB 之所以这么火不是性能原因(最快的 NoSQL 是 Redis)
mongodb不是mmap么。cache用完了应该要卡的吧。
redis也不是最快的nosql。Memlink号称比redis快(至少某些情况下)
- 而是 MongoDB 在 SQL和 NoSQL 中找到了平衡
- 几乎所有 SQL 语句都可以找到简单的 MongoQuerty 处置
- 几乎MySQL 最头痛的各种同步/分片策略 Mongo 都可以在命令行中快速配置完成
- 而且不同各种 K/V 的DB,MonggoDB 支持一些原生的数据类型,期中的定长集合,速度已经非常快了
俺在直接用 MongoDB 开发爬虫应用,真的很好用的,,,
PS:
著名的 Scrpy 干脆就己有 Mongo 的擴展了,,,
首先要申明一点个人看法,mongodb就不是给大团队用的。
他的优点在于
1,拥有较高的可配置型,方便的做sharded,repli set,可以最大程度的降低运维人员的压力。
2,容易使用和理解的api.不低的插入和查询性能,同样降低开发人员的压力。
3,document模型的数据存储,并通过一些内部设计来避免表之间的join,可提供一个简单方便的容易扩展的架构。而且确保无人误用导致数据不可切分。
从这些优点,很容易得到结论。mongodb就是给缺乏人手的中小型团队提供的一个处理海量数据的,高并发高可用性的数据化持久工具。
如果你是大团队,你可以选择自行开发,可以选择hbase.但是,作为一个中小型团队,当你面临海量数据和高并发压力的情况下,mongodb可能是最合适的选
采用mmap是简单,无须自己再写个缓冲区的代码,倒不是为节约内存copy。bigtable的方法和LSM-tree的方法都是优化了写,但读就退
化了,point-query使用类似bloom filter这样的技术,退化的不多,不过rang-query就不行了。
我的意思是有些问题是数据库的实现问题,人家有资源就会解决,比如,1.8之前,单机不支持WAL。随机I/O也属于这个问题。
有些是设计问题,就是说,你的应用场景不对,就不要用。比如BSON空间膨胀,这个很简单,schemaless,最终就变成每条记录都要保持
schema。