MongoDB之学习之路

AlanblogAlan 41人围观

1. MongoDB是不是一个旁路式缓存系统?

答:MongoDB压根就不是一个缓存系统,更多是一个完整的非关系型数据库,可以把它完整的理解成是一个数据库。如果对文档格式要求严格的话可以理解是一个简单的关系型数据库。并且一般MongoDB都是和node.js一起在后台配合使用,相对来说和php合作较少。

2.MongoDB和传统的mysql数据库,以及和redis、memcache之间的区别?

答:a. MongoDB和mysql有什么区别:

a) 一般mysql里面保存的都是关系型(结构化)的数据,但是MongoDB保存的非结构化{name:asion}\{name:bill,age:1212}

b) 一般mysql都支持事务acid(原子性、一致性、隔离性、持久性),但是MongoDB非关系型一般都不支持事务,这也是为什么非关系型数据库非常快(支持并发的原因),并且一般非关系型数据库内部都是一个巨大的hash表(key--value

i. hash表:时间复杂度是O(1)算法:随着数据量的增加,查询数据的时间并不是直接的增加。理论上从100w查询一条记录和从1000w里面是一样的概念。

弊端:hash碰撞,多个key对应了同一个value,该问题是本身hash这种结果决定的无法真正的避免,但是可以尽量的减少,使用优秀的hash函数(md5\sha1\crc32)

c 非关系型数据就是内存数据库(数据就会丢失的)。常见的redis就是内存式数据库(支持持久化操作:两种方式 aof文件追加 、 rdb 内存快照 )





转载请注明来自Alan博客,本文标题:MongoDB之学习之路

发布评论
生活是一场戏,主角当累了,你亦可成为观众,停下脚步,歇一歇
Top