共计 1806 个字符,预计需要花费 5 分钟才能阅读完成。
开篇介绍
大家好,我是 Java 最全面试题库
的提裤姐,明天这篇是数据库面试题系列的第六篇,次要总结了 MongoDB
相干的面试题;在后续,会沿着第一篇开篇的常识线路始终总结上来,做到日更!如果我能做到百日百更,心愿你也能够跟着百日百刷,一百天养成一个好习惯。
什么是 MongoDB?
MongoDB 是一个文档数据库,提供好的性能,当先的非关系型数据库。采纳 BSON
存储文档数据。BSON()是一品种 json 的一种二进制模式的存储格局,简称 Binary JSON. 绝对于 json 多了 date 类型和二进制数组。
关系型数据库和非关系性数据库的区别?
关系型数据库
长处:
- 数据之间有关系,进行数据的增删改查的时候是十分不便的
- 关系型数据库是有事务操作的,保证数据的完整性和一致性。
毛病:
- 因为数据和数据是有关系的,底层是运行了大量的算法,大量算法会升高零碎的效率,会升高性能
- 面对海量数据的增删改查的时候会显的无能为力
- 海量数据对数据进行保护变得十分的有力
非关系型数据库
长处:
- 海量数据的增删改查是能够的
- 海量数据的保护和解决十分轻松
毛病:
- 数据和数据没有关系,他们之间就是独自存在的
- 非关系数据库没有关系,没有弱小的事务关系,没有保证数据的完整性和安全性
什么是命令空间
mongodb 存储 bson 对象在丛集 (collection) 中。数据库名字和丛集名字以句点连结起来叫做名字空间 (namespace)。
一个汇合命名空间又有多个数据域 (extent),汇合命名空间里存储着汇合的元数据,比方汇合名称,汇合的 第一个数据域和最初一个数据域的地位等等。而一个数据域由若干条文档(document) 组成,每个数据域都有一个 头部,记录着第一条文档和最初一条文档的为知,以及该数据域的一些元数据。extent 之间,document 之间通过 双向链表连贯。索引的存储数据结构是 B 树,索引命名空间存储着对 B 树的根节点的指针。
MongoDB 如何执行事务?
Mongodb 没有应用传统的锁或者简单的带回滚的事务,因为他设计的主旨是轻量级,疾速以及可预计的高性能,可能把它类比成mysql myisam 的主动提交模式
,通过精简对事务的反对,性能失去了晋升,特地是在一个可能会穿过多个服务器的零碎里。
mongodb 同步刷新数据到磁盘吗?
不会,磁盘写操作默认是提早执行的,写操作可能在量三秒后达到磁盘,例如,如果一秒内数据库收到一千个对一个对象递增的操作,仅刷新磁盘一次。
mongodb 应用索引要留神什么?
1、索引很有用,然而它也是有老本的;它 占内存, 让写入变慢
;
2、mongoDB 通常在一次查问里应用一个索引,所以多个字段的查问或者排序须要复合索引能力更加高效;
3、复合索引的程序十分重要
4、在生成环境构建索引往往开销很大,工夫也不能够承受,在数据量宏大之前尽量进行查问优化和构建索引;
5、防止低廉的查问,应用查问分析器记录那些开销很大的查问便于问题排查;
6、通过缩小扫描文档数量来优化查问,应用explain
对开销大的查问进行剖析并优化;
7、索引是用来查问小范畴数据的
不适宜应用索引的状况:
- 每次查问都须要返回大部分数据的文档,防止应用索引
- 写比读多
MongoDB 反对哪些数据类型?
- String 字符串
- Integer 整型数值
- Double 双精度浮点值
- Boolean 布尔值
- Object 用于内嵌文档
- Object ID 对象 ID
- Arrays 用于将数组或列表或多个值存储为一个键
- Min/Max Keys 将一个值与 BSON(二进制的 JSON)元素的最低值和最高值绝对比
- Code 代码类型
- Regular Expression
mongoDB 次要应用在什么场景?
MongoDB 的利用曾经渗透到各个领域,比方游戏、物流、电商、内容治理、社交、物联网、视频直播等,以下是几个理论的利用案例:
游戏场景
,应用 MongoDB 存储游戏用户信息,用户的配备、积分等间接以内嵌文档的模式存储,不便查问、更新物流场景
,应用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB 内嵌数组的模式来存储,一次查问就能将订单所有的变更读取进去。社交场景
,应用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现左近的人、地点等性能物联网场景
,应用 MongoDB 存储所有接入的智能设施信息,以及设施汇报的日志信息,并对这些信息进行多维度的剖析视频直播
,应用 MongoDB 存储用户信息、礼物信息等