我只是想更好地理解,我多年来学到的是基于文档的解决方案速度很慢并且需要大量I/O。对于PHP项目中的示例,通常会说使用像Redis,Memecache或APC之类的内存缓存要好得多,因为它们是基于内存的,而不是将数据缓存到实际的FILE中。

现在,所有这些NoSQL DB都已经到了,我读到它们比MySQl和其他版本要快得多,它们是基于文档的。有人可以帮我理解这个理论吗?如果每个记录都是一个文档(FILE),那么它的性能如何?我最近读到一个在项目中使用Redis的家伙,他说他切换到MongoDB并获得了比Redis更好的效果(我意识到我正在将Cache与DB进行比较,但这不是真正的问题,我想知道基于文档的解决方案比不基于文档的解决方案更快吗?)

最佳答案

基于文档并不一定意味着它们完全存储在文件系统中。某些部分仍可以像索引一样保留在内存中。

仅基于文档的意思是数据库将数据存储在包中(例如,每张纸都是数据集,您可以在上面自由书写)的数据包,而不是像表这样的非常具体的结构。

http://en.wikipedia.org/wiki/Document-oriented_database

啊,为什么它们可以比redis更快:
假设您需要在一组中存储一些非线性信息(即,并非每个数据集看起来都一样,并且一组中有不同的数据类型。在Redis上,您只能存储键值对,因此需要将它们重新链接在一起到您自己的代码/实现中的集合。在NoSQL数据库上,数据库将以(可能)更为优化的方式为您处理此问题:)

10-02 11:55
查看更多