Java-常见面试题收集(十四)

二十三 MongoDB

1 MongoDB介绍

  MongoDB 是一款高性能的 NoSql 数据库,是基于文件存储的数据库,采用BSON 格式来存储数据。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富、最像关系数据库的。(在高负载的情况下,通过添加更多的节点,可以保证服务器性能)

  一个 MongDB 数据库是由多个集合(collection)构成的(相当于 mysql 中的表),每个集合中包含多个文档(document)(相当于 mysql 中的行),每个文档中包含多个字段(field)(相当于 mysql 中的列)

2 BSON 格式与 JSON 的区别与优势

  BSON 是一种类 json 的一种二进制形式的存储格式,简称 Binary JSON,它和JSON 一样,支持内嵌的文档对象和数组对象,但是BSON 有 JSON 没有的一些数据类型,如 Date 和 Binary Data 类型。

  BSON 可以做为网络数据交换的一种存储形式,是一种 schema-less 的存储形式。它的优点是灵活性高,但它的缺点是空间利用率不是很理想。

  例如{key:value,key2:value2},其中 key 是字符串类型,后面的 value 值,它的类型一般是字串,double,Array,ISODate 等类型。

  BSON 有三个特点:轻量性、可遍历性、高效性

3 MongoDB 数据模型的选择

  一是内嵌:内嵌的方式指的是把相关联的数据保存在同一个文档结构之中。MongoDB 的文档结构允许一个字段或者一个数组内的值作为一个嵌套的文档。
  ①数据对象之间有包含关系 ,一般是数据对象之间有一对 多 或 者 一 对 一 的 关 系 。
  ②需 要 经 常 一 起 读 取 的 数 据 。
  ③有map-reduce/aggregation 需求的数据放在一起,这些操作都只能操作单个collection。

  二是引用:引用方式通过存储数据引用信息来实现两个不同文档之间的关联,应用程序可以通过解析这些数据引用来访问相关数据。
  ①当内嵌数据会导致很多数据的重复,并且读性能的优势又不足于覆盖数据重复的弊端 。
  ②需要表达比较复杂的多对多关系的时候 。
  ③大型层次结果数据集 嵌套不要太深。

4 MongoDB 存储引擎的优势

  存储引擎是 MongoDB 的核心组件,负责管理数据如何存储在硬盘和内存上。MongoDB 支持的存储引擎有 MMAPv1,WiredTiger 和 InMemory。InM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泰勒疯狂展开

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值