前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一分钟玩转 MongoDB

一分钟玩转 MongoDB

作者头像
运维部落
发布2020-03-12 16:02:51
4300
发布2020-03-12 16:02:51
举报
文章被收录于专栏:运维部落运维部落

一分钟玩转 MongoDB

MongoDB是什么?

MongoDB 是个可扩展、高性能、开源、面向文档(document-oriented)的,由c++实现的,介于关系数据库和非关系数据库之间,基于分布式文件系统存储的开源数据库产品。目前最新版本: 4.2

1、MongoDB名字由来

摘自英文俚语 humongous,意为“巨大”,可能也是 MongoDB 设计之初的理念,为处理大数据而生。

2、主要特点

  • 面向文档存储的数据库
  • 支持任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")。
  • 相对传统数据库有更强的扩展性
  • 分布式
  • 查询表达式丰富。查询指令使用JSON形式的标记
  • 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段
  • Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
  • GridFSMongoDB中的一个内置功能,可以用于存放大量小文件。

3、专业术语表

3.1 概念/术语

SQL术语/概念

MongoDB术语/概念

解释/说明

database

database

数据库

table

collection

数据库表/集合

row

document

数据记录行/文档

column

field

数据字段/域

index

index

索引

table

joins

表连接,MongoDB不支持

primary

key

primary key 主键,MongoDB自动将_id字段设置为主键

3.2 RDBMS/MongoDB术语

RDBMS

MongodbDB

数据库

数据库

表格

集合

文档

字段

表联合

嵌入文档

主键

主键 (MongoDB 提供了 key 为 _id )

4、RDBMS vs NoSQL

4.1 RDBMS

  • 高度组织化结构化数据
  • 结构化查询语言(SQL) (SQL)
  • 数据和关系都存储在单独的表中。
  • 数据操纵语言,数据定义语言
  • 严格的一致性
  • 基础事务

4.2 NoSQL

  • 代表着不仅仅是SQL
  • 没有声明性查询语言
  • 没有预定义的模式
  • 键 - 值对存储,列存储,文档存储,图形数据库
  • 最终一致性,而非ACID属性
  • 非结构化和不可预知的数据
  • CAP定理
  • 高性能,高可用性和可伸缩性

5、 NoSQL的优点/缺点

5.1 优点

  • 高可扩展性
  • 分布式计算
  • 低成本
  • 架构的灵活性,半结构化数据
  • 没有复杂的关系

5.2 缺点

  • 没有标准化
  • 有限的查询功能(到目前为止)
  • 最终一致是不直观的程序

6、与MySQL/pgSQL对比

6.1 底层存储引擎不同

  • InnoDB
  • mongoDB

6.2 应用场景不同

  • 关系型数据库
    • 这些数据通常需要做结构化查询,比如join,这时候,关系型数据库就要胜出一筹
    • 这些数据的规模、增长的速度通常是可以预期的
    • 事务性、一致性
  • 非关系型数据库
    • 这些数据通常用于模糊处理,如全文搜索、机器学习
    • 这些数据是海量的,而且增长的速度是难以预期的,
    • 根据数据的特点,NoSQL数据库通常具有无限(至少接近)伸缩性
    • 按key获取数据效率很高,但是对join或其他结构化查询的支持就比较差
  • MongoDB应用场景
    • 表结构不明确且数据不断变大 MongoDB是非结构化文档数据库,扩展字段很容易且不会影响原有数据。内容管理或者博客平台等,例如圈子系统,存储用户评论之类的。
    • 更高的写入负载 MongoDB侧重高数据写入的性能,而非事务安全,适合业务系统中有大量“低价值”数据的场景。本身存的就是json格式数据。例如做日志系统。
    • 数据量很大或者将来会变得很大 Mysql单表数据量达到5-10G时会出现明细的性能降级,需要做数据的水平和垂直拆分、库的拆分完成扩展,MongoDB内建了sharding、很多数据分片的特性,容易水平扩展,比较好的适应大数据量增长的需求。
    • 高可用性 自带高可用,自动主从切换(副本集) 按key获取数据效率很高,但是对join或其他结构化查询的支持就比较差

ss的篡权

AWK 专家必备的12个技巧

远程工作日报!这样的才是老板想要的

又一起删库跑路事件:微盟系统遭遇运维破坏

微盟?出行巨头携程2015年的全站瘫痪还有多少人记得?

价值100万的黄金人脉管理课程

疫情之下,带给IT人哪些思考?

曾经,我以为裁员降薪离我们很远

提问的艺术

IT人如何快乐的胖瘦自如

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维部落 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一分钟玩转 MongoDB
    • 1、MongoDB名字由来
      • 2、主要特点
        • 3、专业术语表
          • 3.1 概念/术语
          • 3.2 RDBMS/MongoDB术语
        • 4、RDBMS vs NoSQL
          • 4.1 RDBMS
          • 4.2 NoSQL
        • 5、 NoSQL的优点/缺点
          • 5.1 优点
          • 5.2 缺点
        • 6、与MySQL/pgSQL对比
          • 6.1 底层存储引擎不同
          • 6.2 应用场景不同
      相关产品与服务
      云数据库 MongoDB
      腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档