mongodb 使用场景和不使用场景

mongodb 使用场景和不使用场景 2012-09-26 10:30:18

分类: Linux

1.mongodb介绍

MongoDB (名称来自"humongous") 是一个可扩展的高性能,开源,模式自由,面向文档的数据库。它使用C++编写。MongoDB特点:

a.面向集合的存储:适合存储对象及JSON形式的数据。

b.动态查询:mongo支持丰富的查询表达方式,查询指令使用JSON形式的标记,可轻易查询文档中的内嵌的对象及数组。

c.完整的索引支持:包括文档内嵌对象及数组。mongo的查询优化器会分析查询表达式,并生成一个高效的查询计划。

d.查询监视:mongo包含一个监视工具用于分析数据库操作性能。

e.复制及自动故障转移:mongo数据库支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目的是提供冗余及自动故障转移。

f.高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)。

g.自动分片以支持云级别的伸缩性:自动分片功能支持水平的数据库集群,可动态添加额外的机器。

2.mongo使用场合

mongodb的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系统(丰富的功能)架起一座桥梁,集两者的优势于一身。mongo适用于以下场景:

a.网站数据:mongo非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。

b.缓存:由于性能很高,mongo也适合作为信息基础设施的缓存层。在系统重启之后,由mongo搭建的持久化缓存可以避免下层的数据源过载。

c.大尺寸、低价值的数据:使用传统的关系数据库存储一些数据时可能会比较贵,在此之前,很多程序员往往会选择传统的文件进行存储。

d.高伸缩性的场景:mongo非常适合由数十或者数百台服务器组成的数据库。

e.用于对象及JSON数据的存储:mongo的BSON数据格式非常适合文档格式化的存储及查询。

不适合的场景:

a.高度事物性的系统:例如银行或会计系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。

b.传统的商业智能应用:针对特定问题的BI数据库会对产生高度优化的查询方式。对于此类应用,数据仓库可能是更合适的选择。

c.需要SQL的问题。

时间: 2024-12-29 11:17:29

mongodb 使用场景和不使用场景的相关文章

Cocos2d-x如何添加新场景及切换新场景(包括场景特效)

做了一天多的工作终于把此功能搞定了,实际上添加新场景花费不了多少时间,时间主要花在切换到另一个场景的实现上,主要原因是编译时出现了一个错误,百思不得其解,后来经过查资料不断摸索才知道自己问题的所在,改正了错误编译通过,实现了我想要的结果,看着那个场景切换的自由和切换过程中各种特效的绚丽,看在眼里,乐在心里. 下面开始我的探索之路: 首先新建一个场景,其实你可以参考HelloWorld场景建立自己的场景,当然你在新的场景里实现的功能由你自己来定,下面贴上我的新建场景代码: SecondScene.

Memcached, Redis, MongoDB区别、特点、使用场景

https://blog.csdn.net/qq_37968902/article/details/79190440 https://my.oschina.net/liyurong/blog/1921898 https://www.cnblogs.com/timxgb/p/9578254.html 更改它的环境变量,最大并发量,启动服务的用户端口等,在memcached.service内指定的环境变量文件 telnet测试连接memcached 原文地址:https://www.cnblogs.

hadoop学习笔记--哪些场景不适合 哪些场景适合

Hadoop不是万能的,有些场景适用,有些不适用. Hadoop设计的目的主要包括下面几个方面,也就是所谓的适用场景: 1:超大文件 可以是几百M,几百T这个级别的文件. 2:流式数据访问 Hadoop适用于一次写入,多次读取的场景,也就是数据复制进去之后,长时间在这些数据上进行分析. 3:商业硬件 也就是说大街上到处都能买到的那种硬件,这样的硬件故障率较高,所以要有很好的容错机制. 接下来说说不适用的场景: 1: 低延迟数据访问 Hadoop设计的目的是大吞吐量,所以并没有针对低延迟数据访问做

cocos2d-js 连连看01-开始场景,游戏主场景

其实感觉这个引擎还是存在很多坑的,但是理解不是一朝一夕,今天主要完成了第一个场景开始界面以及游戏主页面的一个布局. main.js入口文件做一些初始化,指向下一个场景的方法,并且预加载图片. cc.LoaderScene.preload(g_resources, function () { cc.director.runScene(new menuScene()); }, this); 之后进入第一个场景制作logo 开始按钮跟文字 并缓存plist图片 点击开始按钮进入游戏主页面,将图片根据数

php面向对象、语法【访问成员的情形:外和方法内调用对象的关键字this】、构造函数的场景和析构函数的场景

1.面向对象[一种编程思想,并不表示比面向过程天生高端,实质上是一种更好扩展维护的编程思想] [编程思想本身没有高下之分,但是会有个选择的过程] 面向过程:将一个业务逻辑拆分成各个过程,分别实现各个过程,从而实现业务逻辑的思想就是面向过程. [面向过程的问题:对业务整体逻辑的抽象化一直存在.面向过程是一个动作的罗列.但是面向对象则是主体的描述.所以面向过程不可能完全描述业务逻辑] 实质上面向对象更加切合现实生活[通过主体的控制] 以上是本质上的区别和选择.[如何为了切合现实生活的话,面向过程需要

场景应用:微信+场景是为网络营销新思路

根据腾讯的最新数据报告:微信的每月活跃用户达到5.49亿,已经成为国内用户基数最大.活跃程度最高的即时通讯工具.从营销角度来看,微信已经成为移动互联网营销的新入口.时代发展下的网络营销 传统营销式微,移动互联网营销异军突起.大小商家纷纷在移动互联网上"攻城略地".6月18日前夕,天猫.京东.苏宁等各大电商的广告在移动互联网上"狂轰滥炸",引来万众聚焦. 这一盛景带来的成效甚好,各大电商赚了个盆满钵满.事实证明:移动互联网已经成为营销的高速公路,各大平台提供了这个高速

谈谈mongodb,mysql的区别和具体应用场景

时间:2016 十月 12 最近对数据库比较感兴趣,于是就去研究了下部分相关热门的数据库. MySQL 关系型数据库. 在不同的引擎上有不同 的存储方式. 查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高. 开源数据库的份额在不断增加,mysql的份额页在持续增长. 缺点就是在海量数据处理的时候效率会显著变慢. Mongodb 非关系型数据库(nosql ),属于文档型数据库.先解释一下文档的数据库,即可以存放xml.json.bson类型系那个的数据.这些数据具备自述性(self

【转载】谈MongoDB的应用场景

引用:http://blog.csdn.net/adparking/article/details/38727911 MongoDB的应用场景在网上搜索了下,很少介绍关于传统的信息化应用中如何使用MongoDB数据库方面的内容,比较多的还是介绍日志的采集和存储,小文件的分布式存储,类似互联网微博应用的数据存储等方面的内容.在这里思考下传统企业信息化系统中的应用可行性. 首先对于NoSQL数据库,在数据库建模上需要重点考虑,彻底放弃传统的关系型数据库建模方法,如果将传统的关系型数据库表原封不动的映

MongoDB、Hbase、Redis等NoSQL优劣势、应用场景

NoSQL的四大种类 NoSQL数据库在整个数据库领域的江湖地位已经不言而喻.在大数据时代,虽然RDBMS很优秀,但是面对快速增长的数据规模和日渐复杂的数据模型,RDBMS渐渐力不从心,无法应对很多数据库处理任务,这时NoSQL凭借易扩展.大数据量和高性能以及灵活的数据模型成功的在数据库领域站稳了脚跟. 目前大家基本认同将NoSQL数据库分为四大类:键值存储数据库,文档型数据库,列存储数据库和图形数据库,其中每一种类型的数据库都能够解决关系型数据不能解决的问题.在实际应用中,NoSQL数据库的分