MongoDB相关
一、应用场景
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。
1、网站数据:MongoDB 非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
2、缓存:适合作为信息基础设施的缓存层。在系统重启之后,由mongodb搭建的持久化缓存可以避免下层的数据源过载。
3、大尺寸、低价值的数据。
4、重要数据:mysql,一般数据:mongodb,临时数据:memcache
5、高伸缩性的场景:mongodb非常适合由数十或者数百台服务器组成的数据库。
6、用于对象及JSON 数据的存储:mongodb的BSON 数据格式非常适合文档格式化的存储及查询。
不合适的场景:
1、高度事务性的系统:例如银行或会计系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。
2、传统的商业智能应用:针对特定问题的BI 数据库会对产生高度优化的查询方式。对于此类应用,数据仓库可能是更合适的选择。
3、重要数据,关系数据。
二、与关系型数据库相比,优点和缺点
优点:
1、弱一致性(最终一致),更能保证用户的访问速度
2、文档结构的存储方式,能够更便捷的获取数据
3、内置GridFS,高效存储二进制大对象(比如照片和视频)
4、第三方支持丰富
缺点:
1、不支持事务
2、占用空间过大,维护工具不够成熟
三、分析器的作用
MongoDB 中包括了一个可以显示数据库中每个操作性能特点的数据库分析器。通过这个分析器你可以找到比预期慢的查询(或写操作)。利用这一信息,比如,可以确定是否需要添加索引。
四、要注意的问题
1、尽量使用稳定版,不要在线上使用开发版。
2、要做备份。除了通过传统的复制的方式来做备份,也要做离线备份。
3、注意索引的使用效率,能否可以放到内存中,日升随机读写的性能。
4、定期做数据库修复和定期重做索引。