IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MongoDB介绍 -> 正文阅读

[大数据]MongoDB介绍

目录

1.MongoDB介绍

2.业务场景

3.体系结构(MySQL和MongoDB对比)

4.MongoDB的特点


1.MongoDB介绍

MongoDB是一个开源、高性能、无模式的文档型数据库,当初的设计就是用于简化开发和方便扩展,是NoSQL数据库产品中的一种。是最像关系型数据库(MySQL)的非关系型数据库。
它支持的数据结构非常松散,是一种类似于JSON的格式叫BSON,所以它既可以存储比较复杂的数据类型,又相当的灵活。
MongoDB中的记录是一个文档,它是一个由字段和值对(field:value)组成的数据结构。MongoDB文档类似丁JSON对象,即一个文档认为就是一个对象,字段的数据类型是字符型,它的值除了使用基本的一些类型外,还可以包括其他文档、普通数组和文档数组。

2.业务场景

传统的关系型数据库(如MysQL) ,在数据操作的"三高"需求以及应对Web2.0的网站需求面前的,显得力不从心。

"三高" 需求:
????????High performance-对数据库高并发读写的需求。
????????Huge Storage-对海量数据的高效率存储和访问的需求。
????????High Scalability & High Availability-对数据库的高可扩展性和高可用性的需求。

具体场景:

????????社交场景?使用MongoDB存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能。
????????游戏场景?使用MongoDB存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、高效率储和访问。
????????物流场景?使用MongoDB存储订单信息,订单状态在运送过程中会不断更新,以MongoDB内底数组的形式来存储,一次查询就能将订单所有的变更读取出来。
????????物联网场景?使用MongoDB存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析。
????????视频直播?使用MongaDB存储用户信息、点赞互动信息等。

这些应用场景中,数据操作方面的共同特点是:
????????(1)数据量大
????????(2)写入操作频繁
????????(3)价值较低的数据,对事务要求不高
对于这样的数据,我们更适合使用MongoDB来实现数据的存储。

在架构选型上,除了上述的三个特点外,还可以考虑以下的一些问题:

? ? ? ? (1)应用不需要事务及复杂join支持

????????(2)新应用,需求会变,数据模型无法确定,想快速迭代开发

? ? ? ? (3)应用需要2000-3000以上的读写QPS (更高也可以)

????????(4)应用需要TB甚至PB级别数据存储

????????应用要求存储的数据不丢失

????????(5)应用需要99.999%高可用

????????(6)应用需要大量的地理位置查询、文本查询

如果上述有1个符合,可以考虑MongoDB

3.体系结构(MySQL和MongoDB对比)

SQL术语/概念MongoDB术语/概念解释/说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录行/文档
colunmfield数据字段/域
indexindex索引
table joins表连接,MongoDB不支持
嵌入文档MongoDB通过嵌入式文档来代替多表连接
primary keyprimary key主键,MongDB自动将_id设为主键

4.MongoDB的特点

MongoDB主要有如下特点:

  1. 高性能:
    MongoDB提供高性能的数据持久性。特别是对嵌入式数据模型的支持减少了数据库系统上的I/O活动索引支持更快的查询,并且可以包含来自嵌入式文档和数组的键。(文本索引解决搜索的 需求、TTL素引解决历史数据自动过期的需求、地理位置案引可用于构建各种O2O应用)mmapv1,、wiredtiger、mongorocks (rocksdb) 、in-memory等多引擎支持满足各种场景需求。GridFS解决文件存储的需求。
  2. 高可用:
    MongoDB的复制工具称为副本集(Replica Set) ,它可提供自动故障转移和数据冗余。
  3. 高扩展性:
    MongoDB提供了水平可扩展性作为其核心功能的一部分分片将数据分布在一组集群的机器上。(海量数据存储,服务能力水平扩展)从3.4开始, MongoDB支持基于片键创建数据区域,在一个平衡的集群中, MongoDB将一个区域所覆盖的读写只定向到该区域内的那些片
  4. 丰富的查询支持
    MongaDB支持丰富的查询语言,支持读和写操作(CRUD),比如数据聚合、文本搜索和地理空间查询等。
  5. 其他特点
    如无模式(动态模式) 、灵活的文档模型
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-15 11:37:30  更:2022-05-15 11:38:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/16 6:32:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码