170504、MongoDB和MySQL对比(译)
一、概要 几十年来,关系型数据库已经成为企业应用程序的基础,自从MySQL在1995年发布以来,它已经成为一种受欢迎并且廉价的选择。然而随着近年来数据量和数据的不断激增,非关系数据库技术如MongoDB应运而生,以满足新应用的需求。 MongoDB用于新的应用程序,以及扩充或替换现有的关系型基础设施(关系型数据库)。 阿里巴巴长期招聘Java研发工程师p6,p7,p8等上不封顶级别,有意向的可以发简历给我,注明想去的部门和工作地点:1064454834@qq.com 二、什么是Mysql MySQL是由Oracle公司开发,发布和支持的受欢迎的开源关系数据库管理系统(RDBMS)。像其他关系系统一样,MySQL将数据存储在表中,并使用结构化查询语言(SQL)来进行数据库访问。在MySQL中,您可以根据需要预先定义数据库模式,并设置规则来管理表中字段之间的关系。在MySQL中,相关信息可能存储在单独的表中,但通过使用关联查询来关联。通过使用这种方式,使得数据重复量被最小化。 三、 什么是MongoDB MongoDB是由MongoDB,Inc.开发的开源数据库。MongoDB将数据存储在类似JSON的文档中,并且文档中每个json串结构可能有所不同。相关信息存储在一起,通过MongoDB查询语言进行快速查询访问。 MongoDB使用动态模式,这意味着您可以在不首先定义结构的情况下创建记录,例如字段或其值的类型。您可以通过添加新字段或删除现有记录来更改记录的结构(我们称之为文档)。该数据模型可以让您轻松地代表层次关系,存储数组和其他更复杂的结构。集合中的文档不需要具有相同的一组字段,数据的非规范化是常见的。 MongoDB还设计了高可用性和可扩展性,并提供了即用型复制和自动分片功能。 四、 术语和概念 MySQL中的许多概念在MongoDB中具有相近的类比。本表概述了每个系统中的一些常见概念。
五、 特色对比 像MySQL一样,MongoDB提供了丰富的远远超出了简单的键值存储中提供的功能和功能。 MongoDB具有查询语言,功能强大的辅助索引(包括文本搜索和地理空间),数据分析功能强大的聚合框架等。相比使用关系数据库使用MongoDB,您还可以使用这些功能,跨越更多样化的数据类型和数据规模。
六、 查询语言 MySQL和MongoDB都有丰富的查询语言。在MongoDB文档https://docs.mongodb.com/manual/reference/sql-comparison/?_ga=2.97293983.1414641971.1500188964-1583439788.1500188964 中可以找到一个完整的语句列表。 image.png
七、 为什么要使用MongoDB而不是MySQL? 各种规模的组织企业都采用MongoDB,因为它能够更快地构建应用程序,处理高度多样化的数据类型,并更有效地管理应用程序。 简化了开发,因为MongoDB文档自然映射到现代的面向对象编程语言。使用MongoDB可以避免将代码中的对象转换为关系表的复杂对象关系映射(ORM)层。 MongoDB的灵活数据模型也意味着您的数据库模式可以随业务需求而发展。例如,在天气频道的MySQL数据库中花费数周时间的模式更改可能会在短短几个小时内由MongoDB进行。
MongoDB还可以在多个分布式数据中心之间进行扩展,提供以前MySQL等关系数据库无法实现的新的可用性和可扩展性。随着在数据量和吞吐量方面的增长,MongoDB可轻松扩展,无需停机,无需更改应用程序。相比之下,要实现与MySQL的规模往往需要大量的定制工程。百度从MySQL迁移到MongoDB,以支持其快速增长的业务。中国互联网服务巨头现在拥有超过100个应用程序,并使用MongoDB集群管理超过1PB的数据。 八、 MongoDB场景使用场景? MongoDB是用于各种用例的通用数据库。 MongoDB最常见的用例包括单视图,物联网,移动,实时分析,个性化,目录和内容管理。 九、 何时用MySQL比较合适 虽然大多数现代应用程序需要一个灵活的可扩展系统,如MongoDB,但是有一些关系数据库(如MySQL)将更适合使用的情况。需要复杂的多行事务的应用程序(例如双记录bookkeep系统)将是很好的例子。 MongoDB不是围绕关系数据模型和SQL构建的遗留应用程序的替代方法。 一个具体的例子是旅行预订系统背后的预订引擎,通常还涉及复杂的事务。虽然核心预订引擎可能在MySQL上运行,但是与用户互动的应用程序部分 - 提供内容,与社交网络集成,管理会话 - 将更好地放在MongoDB中 十、 MongoDB和MySQL能否一块使用? MongoDB和MySQL的混合部署有很多例子。在某些情况下,这是一个使用合适工具的的问题。例如,许多电子商务应用程序使用MongoDB和MySQL的组合。产品目录包括具有不同属性的多个产品,非常适合MongoDB的灵活数据模型。另一方面,需要复杂事务的结帐系统可能建立在MySQL或其他关系数据库技术上。 在其他情况下,新的业务需求推动企业采用MongoDB作为其应用程序的下一代组件。例如,世界领先的业务管理软件和服务供应商之一的Sage集团将MongoDB整合到其适用于中型企业的受欢迎的企业资源规划(ERP)解决方案中。 Sage客户现在享受更高程度的功能和个性化作为一体化的结果。虽然许多Sage产品最初建立在MySQL上并继续运行,但最新的用户体验功能集中在MongoDB周围。
除了这几个例外,我们认为,由于其灵活的数据模型和可扩展架构,MongoDB几乎总是比MySQL更好的选择。 十一、想了解更多?获取RDBMS到MongoDB迁移指南 由于我们今天构建和运行应用程序的方式以及数据源和用户负载的增长,关系数据库被超越了极限。为了应对这些挑战,像MTV和思科这样的公司已经从关系数据库成功迁移到了MongoDB。在本白皮书中,您将学习: 一步一步如何从关系数据库迁移到MongoDB。 相关技术考虑,如关系和文档数据模型之间的差异以及对模式设计的影响。 索引,查询,应用程序集成和数据迁移。 白皮书下载:https://www.mongodb.com/zh/collateral/rdbms-mongodb-migration-guide 原文参考:https://www.mongodb.com/compare/mongodb-mysql?jmp=docs
170504、MongoDB和MySQL对比(译)的更多相关文章
- Mongodb 与 MySQL对比
在数据库存放的数据中,有一种特殊的键值叫做主键,它用于惟一地标识表中的某一条记录.也就是说,一个表不能有多个主键,并且主键不能为空值. 无论是MongoDB还是MySQL,都存在着主键的定义. 对于M ...
- 非替代品,MongoDB与MySQL对比分析
IT168 评论]对于只有SQL背景的人来说,想要深入研究NoSQL似乎是一个艰巨的任务,MySQL与MongoDB都是开源常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数 ...
- 【代码周边】MongoDB与Mysql对比以及插入稳定性分析(指定主键的影响)
在数据库存放的数据中,有一种特殊的键值叫做主键,它用于惟一地标识表中的某一条记录.也就是说,一个表不能有多个主键,并且主键不能为空值. 无论是MongoDB还是MySQL,都存在着主键的定义. 对于M ...
- MySQL与MongoDB的操作对比,以及区别
MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库.它们各有各的优点,关键是看用在什么地方 ...
- [转]MySQL与MongoDB的操作对比
MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库.它们各有各的优点,关键是看用在什么地方 ...
- mongodb与mysql命令对比
mongodb与mysql命令对比 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由数据库(database).集合(col ...
- 【译】MongoDb vs Mysql—以NodeJs为例
亲爱的读者,您可能想知道为什么要写关于MongoDb和MySql这篇文章.那是因为我与NodeJs开发人员讨论在应用程序中使用哪种数据存储作为主要的数据存储方式. 我看过很多评论都在争论这个问题. 有 ...
- mongodb postgresql mysql jsonb对比
mongodb pg mysql jsonb对比 http://erthalion.info/2017/12/21/advanced-json-benchmarks/ 使用禁用jsonb列的压缩 AL ...
- mongodb,redis,memcached,mysql对比
1.性能都比较高,性能对我们来说应该都不是瓶颈总体来讲,TPS方面redis和memcache差不多,要大于mongodb 2.操作的便利性memcache数据结构单一redis丰富一些,数据操作方面 ...
随机推荐
- android 虚拟键盘控制
软键盘显示的原理 软键盘的本质是什么?软键盘其实是一个Dialog! InputMethodService为我们的输入法创建了一个Dialog,并且将该Dialog的Window的某些参数(如Grav ...
- 【Java面试题】33 HashMap和Hashtable的区别
1 HashMap不是线程安全的 hastmap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值.HashMap允许null key和n ...
- jQuery 检查某个元素在页面上是否存在实例代码
用jQuery检查某个元素在网页上是否存在时,应该根据获取元素的长度来判断,代码如下: if($("#tt").length > 0) { //元素存在时执行的代码 } ...
- ubuntu下使用sublime text进行C编程开发尝鲜
1 选择编译系统 2 编写文件,编译(Ctrl+B)运行(Shift+Ctrl+B)
- 倾斜摄影 实景三维建模软件photoscan教程
PhotoScan是一款基于影响自动生成高质量实景三维模型的优秀软件,这对于3D建模需求来说实在是一把利器. PhotoScan无需设置初始值,无须相机检校,它根据最新的多视图三维重建技术,可对任意照 ...
- POJ 1655 Balancing Act(求树的重心--树形DP)
题意:求树的重心的编号以及重心删除后得到的最大子树的节点个数size,假设size同样就选取编号最小的. 思路:随便选一个点把无根图转化成有根图.dfs一遍就可以dp出答案 //1348K 125MS ...
- Animy.js,自己编写的功能丰富的html动画库
近期由于项目须要.本人制作了一款js的动画插件.能够用于完毕各种js动画.比方移动.拉升.变色等等,全部动画经常使用的功能都已经实现,比方播放.暂停.停止.循环.加速.减速.反向播放.缓动.路径动画. ...
- Java程序员面试技巧
Java 程序员面试技巧 对于每一个求职者,有一份优秀的简历是很必要的,企业通过简历的筛选,会给予求职者面试的机会.然而,很多求职者就是在面试过程中与钟情的工作失之交臂.如何在面试中取得成功呢?“细节 ...
- Java类的设计----Object 类
Object类 Object类是所有Java类的根父类如果在类的声明中未使用extends关键字指明其父类,则默认父类为Object类 public class Person { ... } 等价于: ...
- Ext3.4-EXT之嵌套表格的实现
其中使用到的"RowExpander.js"为extjs官方示例中自带的. 实现这个嵌套表格要注意两点技巧: 1 提供给外层表格的dataStore的数据源以嵌套数组的形式表示细节 ...