对比MySQL,你究竟在什么时候更需要MongoDB

  NoSQL已经流行了很长一段时间,那么究竟是什么场景下你才更需要用到这些“新兴事物”,就比如">MongoDB?下面是一些总结:

  你期望一个更高的写负载

  默认情况下,对比事务安全,MongoDB更关注高的插入速度。如果你需要加载大量低价值的业务数据,那么MongoDB将很适合你的用例。但是必须避免在要求高事务安全的情景下使用MongoDB,比如一个1000万美元的交易。

  不可靠环境保证高可用性

  设置副本集(主-从服务器设置)不仅方便而且很快,此外,使用MongoDB还可以快速、安全及自动化的实现节点(或数据中心)故障转移。

  未来会有一个很大的规模

  数据库扩展是非常有挑战性的,当单表格大小达到5-10GB时,MySQL表格性能会毫无疑问的降低。如果你需要分片并且分割你的数据库,MongoDB将很容易实现这一点。

  使用基于位置的数据查询

  MongoDB支持二维空间索引,因此可以快速及精确的从指定位置获取数据。

  非结构化数据的爆发增长

  给RDBMS增加列在有些情况下可能锁定整个数据库,或者增加负载从而导致性能下降,这个问题通常发生在表格大于1GB(更是下文提到BillRun系统中的痛点——单表格动辄几GB)的情况下。鉴于MongoDB的弱数据结构模式,添加1个新字段不会对旧表格有任何影响,整个过程会非常快速;因此,在应用程序发生改变时,你不需要专门的1个DBA去修改数据库模式。

  缺少专业的数据库管理员

  如果你没有专业的DBA,同时你也不需要结构化你的数据及做join查询,MongoDB将会是你的首选。MongoDB非常适合类的持久化,类可以被序列化成JSON并储存在MongoDB。需要注意的是,如果期望获得一个更大的规模,你必须要了解一些最佳实践来避免走入误区。

  BillRun——使用MongoDB的账单系统|3721.html">2014年2月MUG IL(来自oc666)

  现实用例学习:账单

  在上一次的ILMUG上,Ofer Cohen提出了BillRun,一个下一代基于MongoDB的开源账单解决方案。这个账单系统已被增速最快的以色列8200.html">移动电话运营商采用,每月处理超过5亿的CDR(通讯记录),Ofer分享了该系统如何利用MongoDB的优势:

  弱数据结构模式允许系统快速引入新的CDR类型,BillRun负责托管所有的数据。

  BillRun系统已经管理了TB级的表格,I/O性能受限于新字段的增加及数据体积的增长。

  快速副本集允许更简单地设置多数据中心DRP和HA方案。

  分片允许I/O超预算时的线性横向扩展。

  在CDR插入达到2000个每秒时,MongoDB非常适用于高写入系统。同时,你完全可以使用findAndModify(会影响性能)以及2阶段提交(应用程序级别)来解决事务问题。

  面向开发者的查询允许优雅查询的编写。

  基于位置允许更好的分析用户使用情况,从而更好地制定移动电话基础设施的投入点。

  总结

  MongoDB是个非常不错的工具,但是只有在适合的场景下才能爆发出压倒性优势,BillRun就是一个不错的用例。

时间: 2024-10-04 09:11:32

对比MySQL,你究竟在什么时候更需要MongoDB的相关文章

【MySQL】varbinary 真的比varchar 更合适?

一 前言     在讨论数据表字段设计的时候,有同学提出使用vabinary 代替 varchar ,部分开发不明所以,其实我也是.两者之间具体有什么区别?使用vabinary 代替 varchar 对业务有何优势?本文尝试从性能,数据大小,查询,创建索引等对比功能等方面进行研究,有不妥或者不到位之处还请各位读者朋友提示.二 对比测试2.1 测试环境  数据库版本 Percona Server 5.6.24-72.2-log create table vbinary (   id int pri

由一条create语句的问题对比mysql和oracle中的date差别

今天开发的同事提交过来一个sql变更,在部署的时候发现了一个问题. 语句是一个简单的create语句 CREATE TABLE `test_user` (   `openid` varchar(64) NOT NULL,   `amount` varchar(11) DEFAULT 0,   `create_time` datetime DEFAULT CURRENT_TIMESTAMP,   `update_time` datetime DEFAULT CURRENT_TIMESTAMP,  

MySQL与PostgreSQL比较哪个数据库更好?

  如果打算为项目选择一款免费.开源的数据库,那么你可能会在MySQL与PostgreSQL之间犹豫不定.MySQL与PostgreSQL都是免费.开源.强大.且功能丰富的数据库.你主要的问题可能是:哪一个才是最好的开源数据库,MySQL还是PostgreSQL呢?该选择哪一个开源数据库呢? 在选择数据库时,你所做的是个长期的决策,因为后面如果再改变决定将是非常困难且代价高昂的.你希望一开始就选择正确.两个流行的开源数据库MySQL与PostgreSQL常常成为最后要选择的产品.对这两个开源数据

对比MySQL表数据内容方式汇总

一. mysql自带的checksum命令: 可在不同服务器通过checksum值对比两张表是否一致, 加上EXTENDED参数表示逐行扫描, 结果更为可靠; 执行过程会给表加上System lock, 参考:https://dev.mysql.com/doc/refman/5.7/en/checksum-table.html mysql> checksum table item_sku EXTENDED; +---------------+------------+ | Table | Che

iOS7和iOS6对比图:究竟iOS7设计哪里不好?

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   iOS 7 的新设计让不少人颇为失望,更有消息指 iOS 7 的设计过程很奇诡,而最终版可能会和现在不同.但先不说那些,究竟 iOS 7 的设计是否真的这样差? 最大的问题在 哪里? 这里一系栏将 iOS 7 和 iOS 6 并排比较图片,可能你看完之后就有答案了.     主页       无论顶部状态栏和底部 dock App栏的背景都变成半透明.而且底部

简单对比MySQL和Oracle中的一个sql解析细节

SQL的语法解析器是一个很强大的内置工具集,里面会涉及到很多的编译原理的相关知识,语法分析,词法分析..一大堆看起来很理论的东东,不过看起来枯燥之余,它们的价值也更加明显. 借用一下网络中的原话:如果我们考究一下历史,就会发现很多被称为程序设计大师的人都是编译领域的高手.写出第一个微型机上运行的Basic语言的比尔盖茨,设计出Delphi的Borland的"世界上最厉害的程序员", Sun的JAVA之父, 贝尔实验室的C++之父 起点提得有些高了,今天和大家分享的案例是一个很简单的sq

HDMI和光纤究竟谁的音质更好

  当你需要将刚买来的SoundBar或AV接收器连接到家中的设备上时,一定会面临两种主要音频线的连接方式:HDMI和光纤.也许对于大部分用户来说,HDMI其实是最简单的选择,但是如果你了解到光纤音频线的特点,说不定就不会简单的选择HDMI方式连接了.综合来说,HDMI和光纤两种音频连接方式都拥有各自的优缺点. HDMI与光纤音频连接线都是在设备之间进行传输的方法,并且都要比传统的红白模拟信号传输方式更先进,并且支持像杜比数字立体声这样的多声道声音传输.另外,无论是HDMI还是光纤音频线,造价都

YunOS 对比 Android 两者究竟有何区别

阿里YunOS 5在北京正式发布,开发代号为ATOM,从2011年正式发布以来,YunOS已经走过了四年半的时间,如今YunOS的旗帜已经召集到一大批手机.智能 硬件.医疗等领域厂商.也许有人已经糊涂了,YunOS是什么?我们在官网找到这样一段描述"YunOS依托于阿里巴巴集团电子商务领域积累的经验和强大 的云计算平台,基于Linux开发. 系统搭载了自主设计.架构.研发的系统核心虚拟机,增强了云端服务的能力,并提供与Dalvik虚拟机兼容的运行环境.通过海量云空间来同步和管理手机数 据,数据可

PostgreSQL数据库对比mysql快速复制空表的技巧实例

MySQL 有一个和优秀的语法 create table ... like , 可以快速复制一张表,创建其副本. PostgreSQL 也有类似的语法,而且更加灵活,不过要注意些细节. 先来看看MySQL 语法: create table ... like 原始表T1,结构如下:     +----------+------------------+------+-----+---------+----------------+    | Field | Type | Null | Key |