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

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(编译/毛梦琪 审校/魏伟)

For循环语句详解 - DOS BAT批处理编程入门教程(五) Android编程之实现GPS定位 android编程实现仿iphone的tab效果 系统变量 - DOS BAT批处理编程入门教程(三) Android编程获取手机的IMEI Android开发中14个很有用的编程技巧 Android蓝牙栈bluez使用方法 Android模拟GPS数据生成kml和nmea文件 Android签名用keytool和jarsigner制作apk文件 谈谈Android中文短信的实现 Android中文短信开发技巧 Android来电号码获取代码 Android AIDL初学者必看内容 Android与XML解析 Android天气预报程序开发实例与定位信息 Android中文短信开发终结篇 Android权限列表permission说明 Android输入法开发实例解析 Android示例程序Snake贪食蛇源代码分析 Android平台View的按键事件KeyDown用法 Android加速感应器实现屏幕自动旋转-Sensor属性 Android视频播放类VideoView解析 Javascript如何检测浏览器关闭了小叉叉 文件操作 - DOS BAT批处理编程入门教程(六) 获得手机中的电话簿 Android开发学习小心得 VC中用CPPToolTip轻松实现工具提示 Android中MediaRecorder类实现视频录制 WEB开发中将数据库记录转换到EXCEL表格文件xls供下载 F#是什么语言 函数式编程语言F#:基于CLR的另一个头等编程语言 高手请进!50分赠送!!!!!!!!!!!!!(运行正确即送分)! 一个关于dropdowndw的问题 普通PC是否有装UNIX的必要? 谁有好的加密算法介绍几个,在这里谢谢大家了! alter table--问题 请求帮助!help me!回答正确一定给分 哪里有卡通警察???? int64@163.com 我在一个.CPP文件中定义了一种ENUM类型,我怎样在其他的.CPP中定义此ENUM类型的变量? 小问题 Crystal reports的问题 a question about sqlserver + delphi 有关数据库的设计 请问谁有360度可以许多张图片旋转的代码。 各位大虾,kde下的KDevelop怎么用,尤其是C++编程? 急!急!急!急!急!急!急!急! 我该如何调试一个进程外的exe组件呢?我该如何调试一个进程外的exe组件呢? 打包的问题? 如何在一个MFC程序中取得theApp的指针?? vb与ACCESS200以上版本的兼容性问题 怎么做到的录像? 能不能在基于对话框的程序里实现串行化? MS专家请进:行锁定问题 怎样得到一个文件的扩展名 我在VB中引用了"Microsoft DAO2.5/3.5 compatibility Library",请问在做安装程序时要添加什么DLL和库文件? 高手请进!35分赠送!!!!!!!!!!!!!(运行正确即送分)! sos sos sos 求一源程序或者代码,或者详细制作方法 求教:用java怎样写,内详。 那位兄弟介绍一下国外的找工作情况 在我的主程序中调用ActiveX DLL的问题。 急救:ucdos98,如有请发给我,guicheng.wang@hisensecom.com 高分感激!!! 一个简单的问题? 买了个内置硬猫,装上驱动后机器慢得要命,好象一直在等待什么,而此时system进程占用cpu为99%。 关于专用打印机指令问题!!! 候捷和候俊杰是什么关系?? Crystal Reports的问题 什么是命名空间? 请问怎样订阅google上的新闻组?? 浏览器中的时间选择 谁知道程序员大本营2001光盘那个EXE文件的制作方法吗? 为什么没有actionscript的论坛?那个可是前沿啊/ 错误类型:Microsoft JET Database Engine (0x80040E09)是什么错误啊?请大虾们帮忙! 紧急:请问怎样在windows me中添加、设置并使用传真机 有谁有字节序转换的c代码?现在我要将网络字节序和主机字节序相互转换,但又不能调用api,不知那位大侠可以帮忙?先谢了! 用.NET制作安装盘的一些问题 有谁有字节序转换的c代码?现在我要将网络字节序和主机字节序相互转换,但又不能调用api,不知那位大侠可以帮忙?先谢了! 不能访问asp文件了?? 能做到让页面不刷新吗? 请教一个算法,有关数学的 FastReoprt 要!要!要!要!要!要!要!要! 《C++ Primer》 中文版怎么还不出啊! 母鸡如何受精孵出小鸡的?小时候在乡下看见过母鸡孵小鸡,但就是搞不懂母鸡怎样受精的,我从没见过鸡交配?请高人了却我好几年的疑惑 内存的大小从大到小排是什么?不是 比如 KB K MB M 的排列大小 排大小~ 母鸡孵化鸡蛋,有的蛋可以孵化成小鸡,有的不行.请问公鸡是怎样使母鸡受精的? 母鸡下几个蛋就开始孵小鸡 排大小哦 寻,尺,丈,里都是古代的长度单位,请按由小到大的顺序排例 母鸡下的蛋一定可以孵小鸡吗 这大小怎么排 长度单位寻,丈,尺,寸从大到小排列是 养鸡场的母鸡下的蛋都能孵出小鸡吗? 排列大小 质量为m的物体从静止开始自由下落,不计空气阻力,在t秒内重力对物体做功的平均功率是? 养鸡场的母鸡下的蛋都能孵出小鸡吗?为什么? 按大小排列 物体从高处自由若不计空气阻力则重力做功的功率将如何变化 母鸡生的蛋都能孵出小鸡吗? 鸡蛋需母鸡孵化多久才能出小鸡? 寻,里,尺,丈大小排列帮帮忙 学位的大小从小到大,依次是怎样排列的,谢谢 一定要准! “寻、尺、丈、里”的单位排序按照古文中的顺序从小到大排列. 设计简单实验说明“如何才能使物体振动发出的声音更响?”还有,为什么人们听不到蝴蝶翅膀振动发出的声音,却能听到蚊子的声音? 将下面军衔从大到小排列 我为少男少女歌唱 少男少女有什么含义 长度单位从小到大排序是小到大排序 把下列个数从大到小排列第一组:23 67% 六成五 0.666第二组:3.75% 45 37.5% 0.357第三组:128.5% 1724 127 1.29 语文阅读题经常问表现手法,或者写作手法,请问有哪些,各表达什么作用? 主要内容 比较下列各测量值的大小,并把它们按照从小到大的次序排列起来(1) 20(平方分米),0.3(平方米),4×10的五次方(平方毫米)(2) 1.3(立方分米),0.4×10的三次方(立方厘米),1.5×10的六次方(立方毫米) 我为少男少女们歌唱的内容和来源是什么 我为少男少女们歌唱 里的少男少女有什么深层的含义 无言以对的意思是什么?无言以对 1.概括第二节所表达的意思______________________________________________________2.诗首句说“我为少男少女们歌唱”,可接着说“我歌唱早晨……歌唱那些正在生长的力量”,这样写是否突兀?为什么?________ 单位长度怎么数怎么数?就是这个.数单位长度、要不要算起点和终点.还是数起点不数终点还是数终点不数起点? 无言以对的意思 描写一种大自然的声音大自然的声音丰富多彩,但要将其描绘得生动传神.还需要妙笔生花.比如"蝈蝈在窃窃私语" 根据鸡蛋的外形如何判断孵化后的小鸡是公鸡还是母鸡 无言以对是什么意思 《我为少男少女们歌唱》作者为什么说他变年轻了? 我为少男少女歌唱我为少男少女们歌唱.我歌唱早晨,我歌唱希望,我歌唱那些属于未来的事物 我歌唱正在生长的力量.我的歌呵,你飞吧,飞到年轻人的心中 去找你停留的地方.所有使我像草一样 无言以对的言的意思快,今天, 家用自吸泵的电容怎么接就是线圈的三根线、和电容还有220V外线怎么接 最大的数字单位是兆吗? 没有公鸡,只有母鸡生的蛋可以孵出小鸡吗, 生活在黄土高原上的人们为什么大多居住在窑洞呢 怎么辨别母鸡生出的蛋是孵小鸡的 500只鸡、公鸡和母鸡要什么样的比例、母鸡下的蛋才会孵出小鸡我说的是 母鸡下的蛋要最大程度的可以孵化出小鸡 港华燃气的天然气硫份是多少 兆是什么单位,数字后面有几个0?要正确的,不要胡编 公鸡和母鸡一次成功交配后产多少或产多久的蛋可孵出小鸡? 石油硫含量的标准是什么我说的是石油啊,哥哥! 兆后面的数字单位是什么?如题··· 无言以对的“对”的意思无言以对的“对”为所欲为的两个“为”(分别解释) 天然气或液化气的总硫含量单位由mg/m3如何转换成ppm,可现在又不让用ppm,应换成什么呀! 文件兆数的大小是怎么排的?是K大还是KB大?从1G开始往小排是怎么排的?它们谁大哦? ”无言以对”的意思 鸡蛋放在冰箱里还能孵出小鸡吗?(受精过的) 《我为少男少女歌唱》中,歌唱是什么样的表达方式,代表什么样的感情 1molO2的质量为----g,O2的相对分子量为——,O2的摩尔质量是------,NH4的摩尔质量为—
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘