MySQL和MongoDB的对比
http://bbs.edu118.com/forum.php?mod=viewthread&tid=212&fromuid=231
(出处: 信盈达IT技术社区)
概要
关系型数据库已经成为企业应用程序的基础,自从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提供了丰富的并且远远超出了简单的键值存储中提供的功能和功能。 MongoDB具有查询语言,功能强大的辅助索引(包括文本搜索和地理空间),数据分析功能强大的聚合框架等。相比使用关系数据库使用MongoDB,您还可以使用这些功能,跨越更多样化的数据类型和数据规模。如下图:
查询语言
MySQL和MongoDB都有丰富的查询语言。如下图所示:
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更好的选择。
选择使用哪种
工作中到底使用哪一种数据库?
还是那句话,一切按客户需求!!!
回帖(1)
2017-9-1 14:37:30
深入交流加我qq***
深入交流加我qq***
举报
更多回帖