加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

MongoDB与MySQL:怎样选择

发布时间:2019-10-16 10:43:58 所属栏目:编程 来源:XEyes行走的CODE
导读:MongoDB和MySQL别离是领先的开源NoSQL和相关数据库。哪个最得当您的应用措施? 在1990年月的互联网泡沫时期,用于Web应用措施的一种通用软件仓库是LAMP,它最初代表Linux(OS),Apache(Web处事器),MySQL(相关数据库)和PHP(处事器编程说话)。MySQL是首选的数
副问题[/!--empirenews.page--]

MongoDB和MySQL别离是领先的开源NoSQL和相关数据库。哪个最得当您的应用措施?

MongoDB与MySQL:怎样选择

在1990年月的互联网泡沫时期,用于Web应用措施的一种通用软件仓库是LAMP,它最初代表Linux(OS),Apache(Web处事器),MySQL(相关数据库)和PHP(处事器编程说话)。MySQL是首选的数据库,首要是由于它是免费的开源代码,而且具有精采的读取机能,很是得当从数据库动态天生网站的“ Web 2.0”应用措施。

之后,代表MongoDB(文档数据库),Express(Web处事器),AngularJS(前端框架)和Node.js(后端JavaScript运行时)的MEAN仓库开始风行。除其他缘故起因外,MEAN仓库很有吸引力,由于您必要相识的独一说话是JavaScript。与等效的LAMP仓库对比,它还必要更少的RAM。

什么是MySQL / MariaDB?

MySQL AB的Monty Widenius和David Axmark最初于1994年开始开拓MySQL。产物名称中的“ My”是指Widenius的女儿,而不是英语单词“ my”。MySQL旨在与mSQL(又名Mini)兼容。 SQL),并添加了SQL查询层和开放源代码容许(现实上是专有和GPL双重容许)。MySQL的民众刊行版于1996年底开始,而且每年或每两年一连刊行一次。MySQL是当前最受接待的相关数据库。

Sun Microsystems于2008年以10亿美元的价值收购了MySQL AB,Oracle于2010年收购了Sun。在Oracle收购MySQL的普及存眷中,Widenius在收购Oracle之前就将MySQL 5.5归并到了MariaDB中。MariaDB全力维护与Oracle MySQL版本的兼容性。

与成果更强盛的贸易相关数据库(譬喻Oracle数据库,IBM DB / 2和Microsoft SQL Server)对比,MySQL最初是一个相等低端的相关数据库,尽量它足以成为动态网站的后备存储。多年来,它增进了您但愿从相关数据库得到的大大都成果,包罗事宜,参照完备性束缚,存储进程,游标,全文索引和搜刮,地理索引和搜刮以及聚集。

尽量MySQL此刻支持“大数据库”成果,譬喻主从陈设,与Memcached一路行使以及程度分片,但它仍凡是用于中小型陈设。将MySQL扩展到多个从属处事器可以进步读取机能,可是只有主处事器才气接管写哀求。

AWS提供了两种情势的MySQL即处事,即Amazon RDS和Amazon Aurora。后者具有更高的机能,可以处理赏罚TB级的数据,更新副本的耽误时刻更短,而且可以直接与Oracle数据库和SQL Server竞争。

什么是MongoDB?

MongoDB是高度可伸缩的操纵文档数据库,可在开源版本和贸易企业版本中行使,它可以在当地运行或作为托管云处事运行。托管云处事称为MongoDB Atlas。

MongoDB无疑是NoSQL数据库中最受接待的数据库。它的文档数据模子为开拓职员提供了极大的机动性,而其漫衍式系统布局则提供了很好的可伸缩性。因此,凡是选择MongoDB用于必需打点大量数据,得益于程度可伸缩性并处理赏罚不得当相关模子的数据布局的应用措施。

MongoDB是一个基于文档的存储,在其之上还具有一个基于图形的存储。MongoDB现实上并不存储JSON:它存储BSON(二进制JSON),该扩展了JSON暗示(字符串)以包罗其他范例,譬喻int,long,date,浮点,decimal128和地理空间坐标。

MongoDB可以行使数据的范例天生正确的索引范例,从而在数据的单个副本上天生多模式图形,地理空间,B树和全文本索引。MongoDB使您可以在任何文档字段上建设索引。MongoDB 4具有多文档事宜,这意味着纵然必需尺度化数据计划,您如故可以得到ACID属性。

默认环境下,MongoDB行使动态模式,偶然称为无模式。单个荟萃中的文档不必要具有沟通的字段集,而且字段的数据范例可以在荟萃中的差异文档之间有所差异。您可以随时行使动态模式变动文档布局。

可是,可以行使架构管理。从MongoDB 3.6开始,MongoDB支持JSON模式验证,您可以在验证器表达式中将其打开。

LAMP和MEAN仓库

在LAMP和MEAN仓库上存在许多变革。譬喻,您可以在Windows(WAMP)或MacOS(MAMP)上运行而不是Linux OS。您可以运行IIS(WIMP),而不是Windows上的Apache Web处事器。

您可以运行PostgreSQL或SQL Server,而不是LAMP仓库中的MySQL相关数据库。假如您必要环球漫衍,则可以运行CockroachDB或Google Cloud Spanner。可以行使Perl或Python取代PHP说话。假如要行使Java或C#举办编码,则必要思量单独的仓库系列。

您可以运行Couchbase或Azure Cosmos DB以得到更好的全局漫衍,而不是MEAN仓库中的MongoDB文档数据库。可以行使十二个Node.js Web处事器框架中的任何一个来取代Express 。除了AngularJS前端框架,您还可以运行Angular 2或React。

如作甚您的应用措施选择数据库

选择数据库时要问的最重要的题目是:

  • 您但愿在应用措施成熟时存储几多数据?
  • 您但愿在岑岭负载下同时处理赏罚几多个用户?
  • 您的应用措施必要什么可用性,可伸缩性,耽误,吞吐量和数据同等性?
  • 您的数据库架构多久变动一次?
  • 您的用户群体的地理漫衍是什么?
  • 您的数据的天然“外形”是什么?
  • 您的应用措施必要在线事宜处理赏罚(OLTP),说明查询(OLAP)照旧同时必要两者?
  • 您祈望出产中的读写比例是几多?
  • 您需腹地理查询和/或全文查询吗?
  • 您首选的编程说话是什么?
  • 你有预算吗?假如是这样,它将涵盖容许和支持条约吗?

这些题目中的几个会趋于缩小数据库的选择范畴,可是与拟定LAMP仓库时对比,我们有更多选择。假如您要构建一个应用措施,而且该应用措施必需在99.999%的时刻内对全天下的用户都具有高度的同等性,那么只有少数几个数据库得当您。假如您的应用措施将在事变日的上午9点至下战书6点在一个国度/地域行使,而且可以容忍最终的同等性,那么险些全部数据库都可以行使,尽量某些数据库对付开拓职员和操纵员而言更轻易,而某些数据库则可觉得您的首要行使场景提供更好的机能。

固然LAMP和MEAN仓库一次是Web应用措施的精采办理方案,但此刻都不是最佳选择。而不是盲目回收任何一种,您应该细心思量用例,并找到一种可在可预见的未来为您的应用措施处事的系统布局。

SQL照旧NoSQL?

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读