520初识MongoDB

背景

由于我们在开发的过程中难免会遇到数据库选型的问题,那么数据库的选型那我们必须通过结合我们的业务场景还有他们的设计初衷,及各自在各个方面的优势。现在我们就在业务开发中遇到了选择 mongoDB还时MYsql。之前没有怎么了解过mongoDB,那今天就开始我的mongoDB第一步。

设计的初衷

建立一种灵活,高效,易于扩展,功能完备的数据库。

1. 丰富的数据模型

  • mongo是面向文档的数据库,为了获得更好的扩展性采用的不是关系型数据库,使用一条记录就可以表示非常复杂的层次关系
  • 没有固定的模式,文档的键值可以在应用层进行自己处理

2. 容易扩展

  • 由于大数据时代的来临,开发者遇到的问题就是如何扩展数据库。一般的关系性数据库做拓展最简单的方式也就是分库分表等,但是mongo采用的是文档模式可以自动在多台服务器间进行分割数据。还可以自动平衡负载和自动重排文档等

3. 丰富的功能

  • 索引 1.拥有铺筑索引,能进行多种快速查询,也提供唯一的,复合的和地理空间索引能力
  • 存储JavaScript
  • 聚合 MapReduce和其他聚合工具
  • 固定集合 集合的大小是有上限的
  • 文件存储 存储大型文件和文件元数据 但是也有关系数据库中的功能不具备,那就是join查询,和多行事物。mongo的架构是为了提高性能和扩展性,但是这两个功能很难在一个分布式系统上实现。

4. 不牺牲速度

mongo的主要目标是卓越的性能,使用的传输协议是自己的传输协议作为服务器间交互的主要方式,他对文档进行动态填充,将内存管理工作交给操作系统去处理动态查询优化器会记住执行查询最高效的方式,也将类似于关系型数据库中的一部分业务交给了客户端去处理。

5.简便的管理

MonogDB尽量让服务器自治来简化数据库的管理。除了启动就再也没有什,么需要管理的地方了。如果有节点挂掉,mongo会自动去切换到从节点的机器上。 mongo的管理理念是尽可能的让服务器进行自动配置,让用户在需要时候调整设置。

总结

所有新事物的产生,都会有产生的原因,mongo也不列外,硬件水平提升,大数据时代的到来,关系型数据库出现暴露出了自己的性能瓶颈,如:全文检索导致数据响应时间慢,数据模型的固定导致业务修改成本高等等。mongo通过牺牲关系型数据库中部分功能(事物,join关联)来提高数据库的灵活性和高效性。及支持自动分区,提高数据库的扩展性

想一下和mysql关系型数据库的区别? mysql的优势是什么呢?

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • redis的sortset为什么使用的是跳表,而不使用红黑树?

    redis的有序号集合是通过跳表来实现的,严格地讲还有散列表 我们都知道redis的有序集合操作都包括 :

    居士
  • 细品mysql之Join 语句的执行过程

    今天优化了一个,join关联查的语句,需要优化join的语句,那我们肯定得了解他的一个执行过程。正所谓知己知彼,百战百胜!!

    居士
  • 数据库优化主从读写分离

    答: 当我们在 4 核 8G 的机器上运 MySQL 5.7 时,大概可以支撑 500 的 TPS 和 10000 的 QPS。但是当服务的用户量远超这个量的时...

    居士
  • mysql主从配置(清晰的思路)

    例如:主数据库里的a的数据库里有b,c,d表,那从数据库里的就应该有一个模子刻出来的a的数据库和b,c,d表

    庞小明
  • <图解>MongoDB快速入门如果把mysql比作大名鼎鼎的c语言;那么mongodb就是简单友好的pythonMysql数据库有什么缺陷?关系型数据库的"连接查询"会影响查询效率?连接查询效率低,为

    MongoDB快速入门 如果把mysql比作大名鼎鼎的c语言;那么mongodb就是简单友好的python Mysql数据库有什么缺陷关系型数据库表结构复...

    zhaoolee
  • DBbrain诊断日 | 这个匪夷所思的数据库故障,你会处理吗?

    为更好的帮助DBA运维数据库,腾讯云将于每月12日在社群直播开展DBbrain诊断日,腾讯云高级产品经理迪B哥直播解析经典数据库运维难题,结合腾讯云数据库智能...

    腾讯云数据库 TencentDB
  • 一篇文章了解腾讯云数据库TencentDB

    注:本文摘自2018年11月22日腾讯云数据库CynosDB新品发布会的演讲实录。随着互联网信息的发展,大家也对云这个词汇也不是特别陌生了,作为全球首选的云服务...

    腾讯云数据库 TencentDB
  • 腾讯云学院直播课丨云数据库之从青铜到王者

    4月10日,腾讯云学院邀请到了讲师刘迪,进行了一场直播课,课程主题是:云数据库之从青铜到王者。整个直播课精彩纷呈,广受好评。

    云加社区
  • Mysql 一次性备份导出所有数据库

    有木有遇到过这种情况?电脑或者服务器需要重装系统?可是你电脑上存着n多个网站的数据库,怎么办?把数据库文件夹拷贝出来,重装系统之后再拷回去?如果你使用了Inno...

    似水的流年
  • MySQL数据库界面化工具 - Navicat

    本文使用的工具版本为:Navicat Premium 15,文中提到的功能在旧版中同样支持,如果需要最新版的软件(Mac/Windows)可私信博主。

    聚沙成塔

扫码关注云+社区

领取腾讯云代金券