文档章节

MongoDB和MySQL对比

dove_ztb
 dove_ztb
发布于 2017/07/26 09:58
字数 1698
阅读 24
收藏 1

一、概要
        几十年来,关系型数据库已经成为企业应用程序的基础,自从MySQL在1995年发布以来,它已经成为一种受欢迎并且廉价的选择。然而随着近年来数据量和数据的不断激增,非关系数据库技术如MongoDB应运而生,以满足新应用的需求。 MongoDB用于新的应用程序,以及扩充或替换现有的关系型基础设施(关系型数据库)。
二、什么是Mysql       

        MySQL是由Oracle公司开发,发布和支持的受欢迎的开源关系数据库管理系统(RDBMS)。像其他关系系统一样,MySQL将数据存储在表中,并使用结构化查询语言(SQL)来进行数据库访问。在MySQL中,您可以根据需要预先定义数据库模式,并设置规则来管理表中字段之间的关系。在MySQL中,相关信息可能存储在单独的表中,但通过使用关联查询来关联。通过使用这种方式,使得数据重复量被最小化。
三、 什么是MongoDB

      MongoDB是由MongoDB,Inc.开发的开源数据库。MongoDB将数据存储在类似JSON的文档中,并且文档中每个json串结构可能有所不同。相关信息存储在一起,通过MongoDB查询语言进行快速查询访问。 MongoDB使用动态模式,这意味着您可以在不首先定义结构的情况下创建记录,例如字段或其值的类型。您可以通过添加新字段或删除现有记录来更改记录的结构(我们称之为文档)。该数据模型可以让您轻松地代表层次关系,存储数组和其他更复杂的结构。集合中的文档不需要具有相同的一组字段,数据的非规范化是常见的。 MongoDB还设计了高可用性和可扩展性,并提供了即用型复制和自动分片功能。
四、 术语和概念

MySQL中的许多概念在MongoDB中具有相近的类比。本表概述了每个系统中的一些常见概念。

 

MySQL MongoDB
集合
文档
字段
joins 嵌入文档或者链接

五、 特色对比
        像MySQL一样,MongoDB提供了丰富的并且远远超出了简单的键值存储中提供的功能和功能。 MongoDB具有查询语言,功能强大的辅助索引(包括文本搜索和地理空间),数据分析功能强大的聚合框架等。相比使用关系数据库使用MongoDB,您还可以使用这些功能,跨越更多样化的数据类型和数据规模。

  MySQL MongoDB
丰富的数据模型
动态Schema
数据类型
数据本地化
字段更新
易于编程
复杂事务
审计
自动分片


六、 查询语言
  MySQL和MongoDB都有丰富的查询语言。在MongoDB文档https://docs.mongodb.com/manual/reference/sql-comparison/ 中可以找到一个完整的语句列表。


七、 为什么要使用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更好的选择。

本文转载自:http://ifeve.com/mongodb和mysql对比译/

共有 人打赏支持
dove_ztb
粉丝 0
博文 14
码字总数 1004
作品 0
郑州
私信 提问
Mongodb vs Mysql 查询性能比较

最近想用 Mongodb 做些存储层的事情。目前主要用在 id 查询或 ids 查询(如 mysql 的 in 查询)。新的方案能否上线还要看性能。现在把 mongodb 与 mysql 来对比下。 环境:同一台机器,装有 ...

鉴客
2010/08/05
4K
0
比较 Mongodb 和 Mysql 查询性能

最近想用 Mongodb 做些存储层的事情。目前主要用在 id 查询或 ids 查询(如 mysql 的 in 查询)。新的方案能否上线还要看性能。现在把 mongodb 与 mysql 来对比下。 环境:同一台机器,装有 ...

鉴客
2010/05/19
5.8K
5
MySQL和MongoDB设计实例对比

MySQL是关系型数据库中的明星,MongoDB是文档型数据库中的翘楚。下面通过一个设计实例对比一下二者:假设我们正在维护一个手机产品库,里面除了包含手机的名称,品牌等基本信息,还包含了待机...

无缘的缘分
2014/01/23
1K
3
MySQL和MongoDB设计实例对比

MySQL是关系型数据库中的明星,MongoDB是文档型数据库中的翘楚。下面通过一个设计实例对比一下二者:假设我们正在维护一个手机产品库,里面除了包含手机的名称,品牌等基本信息,还包含了待机...

红薯
2011/09/06
1K
4
MySQL、MongoDB、Redis 数据库之间的区别

MySQL、MongoDB、Redis 数据库之间的区别 NoSQL 的全称是 Not Only SQL,也可以理解非关系型的数据库,是一种新型的革命式的数据库设计方式,不过它不是为了取代传统的关系型数据库而被设计的...

推荐码发放
2018/07/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

2019-1-16

2019-1-16 星期三 晴转霾 早饭:小面包+鸡蛋糕;午饭:馍+地三鲜;晚饭:; 6:50起床,因为媳妇说可能今天晚上去大雁塔那边吃饭,早上起来后洗了个澡(主要因为头发很油了)。 今天早上天气...

莱菔籽
12分钟前
0
0
localDate、localDateTime、localTime的使用

从前端接受的时候,localDate类型的数据要转换,加 @DateTimeFormat(pattern = "yyyy-MM-dd")

shimmerkaiye
19分钟前
1
0
1.二叉树

概念 二叉树(binary tree)是每个节点最多只有两个分支(即不存在分支度大于2的节点)的结构树。通常分支被称为“左子树”和“右子树”,左子树和右子树的位置不能随意颠倒。二叉树的第i层 ...

火拳-艾斯
22分钟前
2
0
java 线程

一、通过实现Runnable接口来创建线程 public class TestThread implements Runnable { public void run() { try { for (int i = 0; i < 10; i++) { ......

朝如青丝暮成雪
27分钟前
1
0
关于eclipse2017 import javax.servlet.jsp.tagext引入错误得问题

在eclipse中: 这个javax.servlet.jsp.tagext属于是tomcat相关jar包找到jsp-api.jar 在tomcat文件夹下边的lib文件夹中就有 如果项目中报错的话 把这个加入到项目中 在myeclipse中: 如下图,...

ZhangLG
42分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部