说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

MySQL还是NoSQL:开源盛世下的数据库该如何选择

HTML文档下载 WORD文档下载 PDF文档下载
MySQL,关系型数据库,有数量庞大的支持者。NoSQL,非关系型数据库,被视为数据库革命者。两者似乎注定要有一场厮杀,可同属开源大家庭的它们却又能携手并进、和睦相处,齐心协力为开发者提供更好的服务。

【编者按】MySQL体积小、速度快、成本低、结构稳定、便于查询,可以保证数据的一致性,但缺乏灵活性。NoSQL高性能、高扩展、高可用,不用局限于固定的结构,减少了时间和空间上的开销,却又很难保证数据一致性。两者都有大量的用户和支持者,寻求两者的结合无疑是个很好的解决方案。作者John Engates是Rackspace主机托管部门CTO,也是个开放云支持者,他为我们带来了详细的分析。


CSDN推荐:欢迎免费订阅《Hadoop与大数据周刊》获取更多Hadoop技术文献、大数据技术分析、企业实战经验,生态圈发展趋势。

以下为译文:

开源数据领域被分成了两派,NoSQL狂热支持者喜欢发表长篇大论批评关系型数据库的局限性,MySQL爱好者则固执地捍卫关系型数据库——坚持让数据整齐地存放在表中。


你肯定会认为这两方决不可能和睦相处,但事实上,成千上万的公司一直都在努力将关系型和非关系型数据库结合起来,而且很多年前就有这样的尝试了。

但新技术的发展往往和过去的技术对立。当NoSQL发展起来时,光这个名字听起来就像是要宣告关系数据库的终结,但这是不可能的,至少不会这么快。

Craigslist的成功

Craigslist公司无缝集成结构化和非结构化数据检索是个很好的例子。过去,该公司一直用MySQL处理频繁的任务和分类广告。

尽管工作量很大,MySQL还是能轻松地完成这项任务。只有当存档数据达到超纪录的级别时,才会产生对NoSQL的需求。由于管理的要求,Craigslist必须将所有历史数据存档——即使是SXSW期间为奥斯汀那昏暗、高价的公寓所做的广告也得存档。

如果一个关系型数据库依靠数据之间的逻辑,那前端架构的更改必然会影响到存档数据。这是一个高风险、高时耗的过程,而且它会造成停机时间损失。想象一下去更新带有10亿条记录的MySQL服务器集群!

Craigslist发现需要以离散方式处理两类数据——当前数据和历史数据。Craigslist或许已经转而使用MongoDB帮助应对数据的增长,但是与MySQL一起运行的NoSQL也从没有出现过问题,这说明MySQL和NoSQL可以很好的结合。

开源同盟

越来越多的应用开发商和托管服务提供商认识到NoSQL和MySQL一直是开源同盟,没有因数据库类型不同而成为不相往来的仇敌。归于一点,数据就是数据,它应该用来为应用程序和用户服务,不应该受到后端数据库的限制。

越来越多的Rackspace客户发现自己面临和Craigslist同样的处境。当关系型数据库涵盖所有他们的数据领域时,他们构建了自己的数据结构,而现在他们已经进入应用时代了。

达到100万客户原先需要数年时间,现在只需要几周就可以了,而且社会共享和实时查询对数据提出了新的要求——也需要支持这些数据的基础设施,这一系列变化使他们面临的数据量达到了每月10亿之巨。

他们不一定要挖掘MySQL数据库,但他们需要增加数据引擎。为了增加数据库的速度和灵活性,MongoDB、Cassandra或者Redis(这类数据库)会被纳入数据结构中。但这些开源数据库不太可能用于存储用户机密信息或者财务记录,因为这些内容必须始终保持一致性。

目前,技术公司在聘请传统关系型数据库管理员同时,组建一个NoSQL应用开发团队也很常见。有时,基于关系型数据库和非关系型数据库的同一个应用甚至可以在Web层进行通信。

过去的数据库管理员必须和新一代使用NoSQL编程的开发人员合作,进行有关部署和体系结构的决策(也许这些数据库管理员和开发人员也能成为朋友)。

可能这类公司连数据库管理员也没有,它们将所有的应用和数据层外包给托管服务供应商,这样的话,它们就得充分利用深厚的专业知识和团队合作,才能跨越SQL与NoSQL之间的鸿沟。

选择其中一个?还是两者都要?

应用程序是否应该与关系型数据库或NoSQL(也许是两者)相一致,当然,这得基于被生成或被检索数据的性质。和大多数科技领域的事物一样,做决定时要折中考虑。

如果规模和性能比24小时的数据一致性更重要,那NoSQL是一个理想的选择 (NoSQL依赖于BASE模型——基本可用、软状态、最终一致性)。

但如果要保证到“始终一致”,尤其是对于机密信息和财务信息,那么MySQL很可能是最优的选择(MySQL依赖于ACID模型——原子性、一致性、独立性和耐久性)。

作为开源数据库,无论是关系型数据库还是非关系型数据库都在不断成熟,我们可以期待还会有一大批基于ACID和BASE模型的新应用产生。

暂且把它称为混合方案。有时这些应用程序的设计需要认真地权衡利弊,有时还能意外的得到发展,做出一系列调整以适应不断变化的数据需求,毕竟,谁能预测到今天社会共享数据的大规模增加(即使是在五年前)?

像往常一样,开发人员处于这种创新的最前沿,他们促使托管服务提供商将这两个数据领域结合到一起。在必要时候,他们还会对开源数据技术进行修正。

比如,在Oracle占有了MySQL后,MySQL有闭源的风险,基于MySQL的MariaDB很好的替代了MySQL。开发者社区要求其开源工具完全透明,包括开放对测试用例bug修复的权限。

此混合方案在2014年将继续发展,托管公司也会提供更好的支持。在媒体上,我们就不会再说“要么关系型数据库,要么非关系型数据库”这样的话了。

这和混合云领域所用方法是类似的。专用硬件有着优越的性能,而公共云有很好的可扩展性,结合两者优点可以带来更大的灵活性,产生最合适的解决方案,这才是解决问题的最优办法。

毕竟,数据收集和解释的最终目标是捕获这个瞬息万变世界发生的每一条信息。数据,无论来自何处,都只是一个窗口,真正重要的是透过这个窗口看到的景象。

原文链接: Open source data grows up: Choosing MySQL, NoSQL, or both(编译/毛梦琪 审校/魏伟)

一个独立开发者的自白:我如何在一年赚得60万美元 Dropbox收购Snapjoy 意欲打造媒体中心 2012世界“末日”:有经过正确的分析吗?! 23.5亿美元!谷歌出售摩托罗拉机顶盒业务 两家巨头相继放弃移动广告,移动广告形势堪忧? 应用洗牌,还能免费多久?Google推出iPad版Quickoffice 2012末日APP推荐 求生自救必备! Windows8上网利器 不卡死的IE10浏览器 为何Java程序员学习Clojure有优势? 我们是如何阅读代码的? “热水冷却”技术将主导美国国防部数据中心改造 程序员想玩转大数据:需要知晓的12种工具 2012年谷歌应用商店增长迅速 但苹果最赚钱 Apple微软Google都在竞购一家创业公司 违反新条款?苹果强行下架AppShopper 2012移动开发教程盘点:最棒的国外游戏开发站 重思JavaScript的好与坏 细数那些 NeXT 留给 OS X 的遗产 一张图让你知道大数据的生态系统 Camera360开放SDK:拍照和滤镜一行代码搞定 一周消息树:计算机将拥有五感 人类面临威胁? 通晓数学的人就可以当程序员吗? 360发布企业版4.0 可自定义软件白名单 不要总是依赖机器 MongoDB扩展彰显分片功夫 Dell与HP的OpenStack的战略:渠道对抗SLA 路况电台王雷:未来车载系统会是Android的天下 移动周报:2012移动开发工具系列盘点 谷歌不愿错失机会 Android或不再成它人独享 黑客文化:Facebook公布2012年Hackathon大赛顶级“黑客作品” 中国移动音乐开放平台正式对外开放 GitLab 4.0发布 更好地支持PostgreSQL 请问:能具体解释什么是流吗? 牛人中的极品(Z) ado连接access2000的极简单问题 [100分]如何让一个帐户同时只允许一个人在线?[100分] SQL语言嵌入C++!!!!! 无法向会话状态服务器发出会话状态请求。请确保已启动 ASP.NET State service,并且客户端和服务器端口保持相同。 鼠标移动到其上,如何显示提示的文字?请各位仁兄指点! 不通过声卡这样发出“嘟...”的响声? VLAN 怎么发电子邮件?? 请问哪里有WideString的定义? 问个关于域名注册的问题 为什么便宜的耳机用一段时间以后,就只有一边发声了?是什么原因?我想自己修,因为手头一大堆这种半报废的耳机 关于属性页的问题,请进 南京上空发现奇异天体 三名飞行员先后紧急报告 我装的weblogic610_win为什么在win2000下运行后打不开http://127.0.0.1:7001/console 有关route add问题 我装的weblogic610_win为什么在win2000下运行后打不开http://127.0.0.1:7001/console VC.NET中是否有支持odbc的类似DBGrid的数据表格控件? 大家推荐一下学习C#的书! htc文件在WEBSPHERE不能正常运行??? 大家在用c编程时,是怎样运用位运算的?(我c学得不好,请大家指教一下) 怎样从一个vlan的客户机访问到另一个vlan上的客户机,急 一个简单问题?关于查询方面的!请指点! htc文件在WEBSPHERE不能正常运行??? 有了Swing,还有必要使用AWT吗? 怎样将richtextbox中的内容存入sql server数据库? 哪位用VC做过拨号程序阿 紧急求援!!!pqmagic在Windows 2000 professional下的安装问题! 如何在PB中通过脚本将文本文件导入数据库中? 一玩3D游戏就退出,一上网就死机,本人用的是小影霸速配3000,何故? 舌尖的热恋(淡月儿) cbuilder5的工程用cbc6打开,编译的时候,出错。为什么?紧急求救!!!!!!!!!! 关于session的问题 如何读取相对路径的文件 我的这点程序怎么运行有错?(内付原码) 编译器错误信息: CS1519: 类、结构或接口成员声明中的标记“(”无效 请教关于VXWORKS的SDK转到LINUX上的方法 有多少人用Struts做过项目啊? 询问所有JSP的高手!!!(在线等) 怎样写一份解决方案 怎样做像qq那样的面板,有源码最好了 还是鼠标事件问题!大家快帮帮忙! 求和的问题 icmp是什么东西,怎么设置?如何打开或关闭它? 抢分啦~~~~ C/C++中有类似于汇编中的宏替换(&)吗? 关于VB的绘图闪烁 哪里有免费空间, 高手必看,微软专家也过来,可能是一个BUG 一个简单的问题! 询问所有ASP的高手!!!(在线等) and we will have a better life . 中文什么意思?拜托各位了 3Q 想要一个好听的小组名和口号,XX小组这样的形式的,那个,现在我们小组叫灿烂小组,组员们说就要这个,但是口号不知道搞,所以,想一个口号~ 亻谷的国语是怎样拼的呢? 求关于理想的演讲稿(班级上的,无评委),800字以上的注:别处抄来的不要,原创的最好,最好有点名人的例子 birds的ds和students的S发音相同吗 欧盟成员国都是欧洲的国家吗 关于理想的演讲稿不要复制的啊!够念1分钟左右就够了, birds怎么读 看到你发好多工亻的呀 英语翻译我的翻译~However,there was one comforting thing happened to me birds与thirty的ir发音一不一样 欧洲大部分的欧盟国家是怎样领导这些27个成员国 英语翻译办法办法 飚是什么意思 截至现在欧盟有几个成员国,哪些欧洲国家不是欧盟成员国 You should be sorry to me.But only sorry is not enough 太飚了 什么意思 neither / so 倒装He bought nothing._____ _____ I. If you do not a___ with other people,you should still be friendly.Do not argue,b___.You always lose friends if you argue too much.And you should think m___ of others than of yourself.It is important for t___ to have one or a group of good friends. 飚速是什么是意思 飚速型什么意思 新概念英语如果从第一册学起,每篇课文会背诵默写,需要多久才能发觉进步,或者达到四级左右的水平. 印字结尾的成语 飚歌是什么意思 冀教版英语七年级上册八年级上册单词和课后短语请把 冀教版 英语 单词和课后短语告诉我 谁知道以 印字开头的成语 除了印累绶若 如何做单词辨音题 飚血 什么意思 带印字的成语如题 There are lots of flowers and trees on ( )of the road.A.both sides B.every side C.all sides 弄客什么意思 我的班级卫生 演讲稿 There are lot's of trees and flowers on ___ side of the road.A.both B.each C.every D.all. 内客什么意思 我心里很难过...请翻译英文 我与班级共成长 演讲稿 晕倒,英语怎么讲 我现在心里很难过,好心的人,说些鼓励的话安慰我吧!我现在心里很难过,因为我觉同事不喜欢我,我在办公室的日子真的很难唉,听他们说话,我又不好意思和他们一起高谈阔论,因为我不知道我 首字母填空 3、 I often turn on my computer and go ( o )to chat with my net friends. 你晕倒我就有机可乘了!英语怎么译? 我不会安慰人,但是我心里是很难过的.用英语怎么表达地道? It's time ___ (go)home,let's go,为什么不可以填for so ,neither 倒装He knows little about the thing,后面是So do I.还是Neither do I.little 是否定含义. 选择.There are many trees on _sides of the road.A.bOth B.every C.each D.each of “It is 5 o'clock now.don't you think it's about time we went home?” 为什么用went? 在so的完全倒装里 ,如果前后人称一样的话 so后面的句子就不用倒装 想问下那么neither呢这是so的特别的用法 还是neither 也是这样的 There are many tall trees on both sides of the road.There are many tall trees( )(只能填一词)the road cats是复数么? it's time the children went to bed 为何要用went呢? I'LL bring some tissue.怎么翻译? cats nurses birds的音标 There are many tall b____ on both sides of the road I will try to have a better life. He often chases cats and birds同义句 He often_________ _____________ cats and birds 1.bro(th)er o(th)er 2.cinem(a) grandp(a) 3.w(or)k m(or)ning4.s(e)ldom n(e)ver 5.beg(i)n sc(i)entist括号阔的地方时需要辨音的地方.请按照数字选择“V” 或者 "×" l will try to have a detter What do you often do on weekends I____playing basketball with my friendsA want B like C have 英语翻译Cratesicleia 就这个,百度找遍了,都没有.有没有哪位知道的,拜拖了.读音是男名还女名啊? “l will try to have a better life ”“and then now we will be fine ”翻译这两句话的中文意思,不懂 let's____(go)home together 请问亻+仚是汉字还是亻+屳是汉字呀?知道有个姓念nao第三声;也知道有字古译同仙,读xian第一声......更想知道的是亻+屳是不是汉字
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘