学习MongoDB--(12):学习总结

从7月31号到9月9号,41天,27篇博文,1本书《MongDB权威指南》。工作中没使用过,个人兴趣让自己坚持整理完了这本“薄书”。收获也是很大的。

写这些东西之前,MongoDB在我眼中是很神秘的,写完后,我猛然就惊醒了,MongoDB到底是什么?她就是一个数据库!她就是为应用提供存储数据的地方!和各种关系型数据库的作用完全一致!对于应用层而言,除了调用的API不同(如果有封装较好的数据库抽象层,API也会一致),其余和你现在采用的关系型数据库在应用层上体现不出差异来!

她之所以又与众不同,是因为她的本质,她的设计理念,这是封装在她内部的东西!她的诞生应对的就是互联网爆炸式发展带来的浩瀚无边的数据,和对服务稳定性无休止的追求!她的易扩展性,稳定性正切合了目前互联网应用迫切需要的特性!

--此上,就是自己的一点感悟了。

--后记:

前些天和同事探讨过MongoDB,同事突然问,“MongoDB性能如何?”,我当时一惊,只是说,“对于读写,MongoDB提供了很多优化性能的机制,包括主从复制可优化读性能,分片集群可优化写性能!”。这里,我想更改一下答案,对于单台MongoDB服务,其读写性能也是很快的,因为其默认的存储引擎是内存映射引擎,当服务器启动后,会将所有的数据映射到内存,读写全部在内存进行,由操作系统将缓冲数据写入磁盘中!这样做,好处就是速度快,但坏处也很明显:系统控制最终数据的持久性,MongoDB无法控制数据最终写入磁盘的顺序,所以MongoDB无法通过预写日志方式维持单机的持久性!后期升级的存储引擎或许会提供这种单机持久性的支持。另一个内存映射引擎的缺点就是,在32位操作系统中,受地址空间影响,MongoDB最多处理2GB的数据,从Win32的启动日志中,我们也可以看到:

Sun Sep 09 12:32:37 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Sun Sep 09 12:32:37 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
Sun Sep 09 12:32:37 [initandlisten] **       with --journal, the limit is lower
Sun Sep 09 12:32:37 [initandlisten] 


 

你可能感兴趣的:(学习MongoDB--(12):学习总结)