MongoDB基础(一)—简介

第1章 NoSQL数据库简介

1.1 NoSQL数据库回顾

1.1.1 什么是NoSQL

  • NOSQL=Not Only SQL
  • 1998年Carlo Strozzi首次提出(不提供SQL功能的关系型数据库)
  • 2009年Eric Evans再次提出NoSQL概念
  • NoSQL、Relational Database相铺相成

1.1.2 NoSQL数据库四大家族

  • 列存储:Hbase
  • 键值(Key-Value)存储:Redis
  • 图像存储:Neo4J
  • 文档存储:MongoDB

1.1.3 NoSQL的优势

  • 高可扩展性,水平扩展灵活
  • 分布式计算
  • 没有复杂的关系,但可以进行复杂查询
  • 低成本
  • 架构灵活
  • 性能高:结构化数据
  • 安全性比较强
  • 存储方式灵活:json方式存储,更便于我们的应用使用读取,没有复杂的结构化。

第2章 MongoDB简介

2.1 MongoDB优缺点

图片[1]|MongoDB基础(一)—简介|leon的博客

2.2 MongoDB特性

MongoDB既有关系型数据库的强大查询功能、强一致性和二级索引,又有非关系型数据库的灵活模式、高扩展性和高性能的特性,所以MongoDB可以说是最接近关系型数据库的非关系型数据库。

图片[2]|MongoDB基础(一)—简介|leon的博客

2.3 MongoDB的设计理念

图片[3]|MongoDB基础(一)—简介|leon的博客

2.3.1 关系与非关系模型

关系型数据库将存储数据原子化,需要哪些信息就提取哪些信息,再“组装”起来反馈给用户;非关系型数据库将数据整体存储起来,使用的时候直接调用数据,因此性能相对要高。

图片[4]|MongoDB基础(一)—简介|leon的博客

2.4 MongoDB与RDBMS的区别

MongoDB与RDBMS最大的区别在于:没有固定的行列组织数据结构

图片[5]|MongoDB基础(一)—简介|leon的博客

2.4.1 MongoDB数据存储格式

2.4.1.1  文档型(JSON)

  • MongoDB 使用JSON(JavaScriptObjectNotation)文档存储记录
  • JSON数据库语句可以容易被解析
  • Web 应用大量使用
  • NAME-VALUE 配对,例如:{product: “car”, brand: “Benz”, color: “blue” }

2.4.1.2  BSON

  • 二进制的JSON,JSON文档的二进制编码存储格式
  • BSON有JSON没有的Date和BinData
  • MongoDB中document以BSON形式存放:> db.meeting.insert({meeting:”SHOUG June”,Date:”2015-06-15″});

图片[6]|MongoDB基础(一)—简介|leon的博客

2.4.1.3  灵活的数据格式

文档里嵌入文档嵌入文档…… 一个KEY对应一个数组
{

_id: ObjectID(“1”), username: “Silence”, regDate: “10-10-2015”, scores: {

math: “80”,

english: “200”

}

}

 

{

_id: ObjectID(“1”), username: “Silence”, regDate: “10-10-2015”, scores: {

math: “80”,

english: “200”

}

Attr:[“a1”,”a2”]

}

2.5 MongoDB的优势

2.5.1 开源

  • MongoDB是开源产品
  • On GitHub
  • Licensed under the AGPL
  • 起源&赞助by MongoDB公司
  • 提供商业版licenses 许可

2.5.2 水平扩展

随着应用的扩大,节点的需求也在增大,在MongoDB中不需要关机即可将新节点添加到现有的MongoDB集群中。

图片[7]|MongoDB基础(一)—简介|leon的博客

2.5.3 支持多种存储引擎

2.5.3.1  MongoDB存储引擎

3.0版本以前默认为MMAPv1存储引擎,3.0版本以后开始支持WiredTiger存储引擎(弱事务功能,类似关系型数据库的功能),且3.0版本以后MongoDB在架构和安全性都得到了巨大提升,所以在3.0版本后得到了广泛使用。

图片[8]|MongoDB基础(一)—简介|leon的博客

2.5.3.2  各种存储引擎的比较

图片[9]|MongoDB基础(一)—简介|leon的博客

2.5.4 具备丰富的功能

  • JSON 文档模型动态的数据模式
  • 二级索引强大查询功能
  • 自动分片水平扩展
  • 自动复制高可用
  • 文本搜索
  • 企业级安全
  • 聚合框架MapReduce
  • 大文件存储GridFS

2.6 MongoDB体系结构

2.6.1 跨平台

Linux、Unix、Mac、Windows等,且整体架构相同:

  1. MongoDB Server:实例、数据库及其对应关系
  2. 数据逻辑结构:文档、集合、数据库
  3. 数据存储:元数据、实际数据

2.6.2 数据逻辑结构层次关系

数据库(database)包含了多个集合(collection),集合中会有多个文档(document)

  • Mongodb和MySQL数据库的对比:
mongodb MySQL
数据库 数据库
集合
文档(json) 行、列信息

2.6.3 MongoDB与RDBMS数据结构逻辑对比

图片[10]|MongoDB基础(一)—简介|leon的博客

2.7 MongoDB适用场景

  • 网站数据,互联网应用较多
  • 缓存
  • 大尺寸、低价值的数据存储
  • 高伸缩性的场景:
  • 业务结构经常发生变化的场景(表结构经常变或需求总在变的情况)
  • 架构变化频繁的场景(数据或业务量膨胀式增长的情况)
  • 对与json应用平滑的业务,比如说 python、java等

2.7.1 互联网典型应用

图片[11]|MongoDB基础(一)—简介|leon的博客

2.7.2 MongoDB 商业价值

  • 利用数据和技术以最大化竞争优势
  • 减少关键任务的部署风险
  • 更快的价值实现
  • 更低的总体拥有成本

2.8 MongoDB软件获取与帮助

下载地址:https://www.mongodb.org/dl/linux/x86_64

文档地址:https://docs.mongodb.com/

                  http://mongoing.com/

温馨提示:本文最后更新于2022-12-20 20:57:50,已超过492天没有更新。某些文章具有时效性,若文章内容或图片资源有错误或已失效,请联系站长。谢谢!
转载请注明本文链接:https://blog.leonshadow.cn/763482/812.html
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享