MongoDB相关概念

业务应用场景

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

1. High performance 对数据库高并发的读写需求,

2.Huge海量数据高效存储和访问的需求。

3.High Scalebility&& High Availability -对数据库的高可扩展性和高可用性需求。

而MongoDB可应对”三高“需求。

***具体的应用场景

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

这些应用场景,数据操作方面的共同特点是:

(1)数据量大
(2)写入操作频繁(读写都很频繁)
(3)价值低的数据,对事务性要求不高。

什么时候选择使用MongoDB?

在架构的选择上,除了上述的三个特点外,如果你还犹豫是否选择它?可以考虑以下的一些问题:

应用不需要事务,及复杂join支持。
新应用,需求会变,数据模型无法确定,想快速迭代开发
应用需求2000~3000以上读写的QPS(更高也可以)
应用需要TB甚至PB级别数据存储
应用要求存储的数据不丢失
应用需要99.999%高可用
应用需要大量地理位置查询,文本查询

如果上述有以下一个符合,可以考虑MongoDB ,2个以上的符合,选择 MongoDB绝不后悔。

思考,如果用MySql呢?

相对Mysql,可以以更低的成本解决问题(包括学习,开发,运维等成本)

MongoDB简介

       MongoDB是一个开源,高性能,无模式的文档型数据库 ,当初的设计就是用来简化开发和方便扩展,是NoSQL数据库数据库产品中的一种,是最像关系型数据库(MYSQL)的非关系型数据库。

      它支持的数据结构非常松散,是类似JSON的BSON格式,所以它既可以存储比较复杂的数据类型,有相当的灵活。

      MongoDB中的记录是一个文档,它是一个由字段和值对(field:value)组成的数据结构。Mongo文档类似于JSON对象,即可以一个文档认为就是一个对象,字段的数据类型是字符型,字段的值除了使用基本的一些类型外,还可以包括其他文档,普通数组和文档数组。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值