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

我为什么放弃MySQL?选择了MongoDB

发布时间:2018-12-23 02:01:23 所属栏目:编程 来源:程序员共成长
导读:最近有个项目标成果模块,为了处理赏罚利便,必要操纵荟萃范例的数据以及其他缘故起因。思量再三最终抉择放弃行使MySQL,而选择MongoDB。 两个数据库,各人应该都不生疏。他们最大的区别就是MySQL为相关型数据库,而MongoDB为非相关型数据库。常见的相关型数据库有

最近有个项目标成果模块,为了处理赏罚利便,必要操纵荟萃范例的数据以及其他缘故起因。思量再三最终抉择放弃行使MySQL,而选择MongoDB。

两个数据库,各人应该都不生疏。他们最大的区别就是MySQL为相关型数据库,而MongoDB为非相关型数据库。常见的相关型数据库有:MySQL、Oracle、DB2、SQL Server、Postgre SQL等,非相关型数据库有MongoDB、Redis、Memcached、HBse等等。

1相关型数据库? 非相关型数据库?

我为什么放弃MySQL?选择了MongoDB

相关型数据库可以领略为依靠一个模子来建设的数据库,好比我们行使的MySQL中的表是由横列和纵列构成的一个二维表格。相关型数据库可以通过相关模子使多个表的数据关联起来,好比我们平常说的 一对一、一对多、多对一。因为是成立在数据模子的基本上,以是我们可以通过SQL语句很利便的在多个表之间做伟大的查询操纵。相关型数据库相对安详,由于直接存储在硬盘中以是溘然的宕机、停电等不测不会导致数据丢失。MySQL的存储方法是由自身的引擎抉择的,常用的引擎有Innodb和MyISAM。他们首要的区别就是MyISAM 不支持事宜,夸大的是机能,执行速率比Innodb要快,Innodb提供支持事宜等高级数据库成果。

我为什么放弃MySQL?选择了MongoDB

非相关型数据库即我们常说的NoSQL数据库,陈设起来都较量简朴,没有相关型数据库那么伟大。Mongo的存储方法为假造内存+耐久化存储,Mongo将数据写入内存中,再由假造内存打点器将其耐久化到硬盘中,因此写操纵会比相关型数据库快许多。NOSQL的存储名目是key-value情势,可以像相关型数据库那样存储基本数据范例的数据,也可以存储荟萃、工具等等。NoSQL固然机能较量高,可是并不支持事物,也不能举办联表查询,一样平常用于较大局限数据的存储。

2他们的利益、弱点有哪些

相关型数据库成长了很长一段时刻,拥有很是成熟的系统。所占份额也在逐渐增进。并且支持事物的操纵,担保数据的同等性,可以通过SQL语句完成伟大的操纵。可是行使进程中当数据量达到必然水平常,相关型数据库的服从会有明明的降落。一个伟大的查询操纵,一系列的组合索引城市耗损很是多的内存空间,此时我们必要对数据库举办读写疏散操纵,可能将数据库布局举办拆分(程度拆分、垂直拆分)将哀求压力分管在差异的库中。

垂直拆分是指将一张表拆分成多个表,表之间通过主键举办关联。

程度拆分是凭证某种法则拆分成多个表,好比通过用户脚色举办拆分

读写疏散:所谓读写疏散就是讲读操纵(查询数据)和写操纵(插入&更新)指向差异的数据库节点,他们中间通过某种机制实现数据的同步,如binlog。现实的应用中大部门压力照旧来自读操纵,以是首要是一主多从的架构。

非相关型数据库成长的这几年,深受人们的喜欢。免费开源、本钱低、陈设简朴、非布局化存储等等明明的上风。并且它对海量数据处理赏罚手段很是强,内存级数据库,查询速率也很是快。存储的数据名目较量富厚,易于扩展,固然不能行使sql举办伟大的查询,可是MongoDB支持JavaScript,以是可以通过js剧本举办伟大的数据库打点操纵。关于NoSQL的弱点小我私人感受今朝就是不支持事物了吧,其他方面那都不是事儿。

3什么时辰用mongo

我为什么放弃MySQL?选择了MongoDB

Mongo是用c++编写的,支持多种说话如:Java、Python、Ruby、PHP、C++、C# 等,偶然辰针对差异的营业需求,选择Mongo可以或许停止挥霍许多不须要的资源

日记体系

体系运行进程中发生的日记信息,一样平常种类较多、范畴较大、内容也较量混乱。通过MongoDB可以将这些混乱的日记举办网络打点。不只利便了打点,查找可能导出也会变得很是轻易

地理位置存储

MongoDB支持地理位置、二维空间索引,可以存储经纬度,因此可以很快的计较出两点之间的间隔,等位置信息。如查询四面的人、可能订餐体系、配送体系等

数据局限增添很快

前面提到过相关型数据库数据量过大时,必要举办分库分表,这样真正操纵起来也许会较量贫困。假如选择mongo举办分库分表操纵时,就会变得很简朴。

担保高可用的情形

Mongo自己就拥有高可用及分区的办理方案,配置主从处事器很是利便,除此之外Mongo还可以快速而且安详的实现妨碍节点的转移。

文件存储需求

GridFS是MongoDB类型,用于存储和检索图片、音频、视频等大文件。GridFS固然是文件存储的一种方法,可以存储高出16M的文件。可是它自己又是存储在MongoDB荟萃中的

其他场景

如游戏开拓中我们可以通过MongoDB存储用户信息、设备、积分等,除此之外物流体系、交际体系、乃至物联网体系,Mongo都能提供美满的数据存储处事。

4MySQL、MongoDB简朴的机能测试

关于两个数据的机能,最有力的的措辞照旧通过实践来举办测试,网上看到一组测试数据,分享给各人。

  • 测试情形:Windows 10、内存8G、CPU i5 3.30GHZ。均无索引
  • 测试说话:Python
  • 链接器材:pymysql、pymongo

MySQL && Mongo 测试数据统计

我为什么放弃MySQL?选择了MongoDB

【编辑保举】

  1. dba+器材:MongoDB热备份器材,,办理官方版备份缺陷
  2. MySQL自增id超大题目查询
  3. MySQL PK MongoDB:多文档事宜支持,谁更友爱?
  4. MySQL主从复制的常见拓扑、道理说明以及怎样进步服从
  5. 新说MySQL事宜断绝级别!
【责任编辑:未丽燕 TEL:(010)68476606】
点赞 0

(编辑:河北网)

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

    热点阅读