1.什么是MongoDB
MongoDB:是一个数据库 ,高性能、无模式、文档性,目前nosql中最热门的数据库
,开源产品,基于c++开发。是nosql数据库中功能最丰富,最像关系数据库的。
2.MongoDB特性:
 面向集合文档的存储:适合存储Bson(json的扩展)形式的数据;
 格式自由,数据格式不固定,生产环境下修改结构都可以不影响程序运行;
 强大的查询语句,面向对象的查询语言,基本覆盖sql语言所有能力;
 完整的索引支持,支持查询计划;
 支持复制和自动故障转移;
 支持二进制数据及大型对象(文件)的高效存储;
 使用分片集群提升系统扩展性;
 使用内存映射存储引擎,把磁盘的IO操作转换成为内存的操作;
3.MongoDB的不足:
 MongoDB对事物的支持较弱: 高度事务性系统,例如银行、财务等系统不适合。
 涉及到复杂 的、高度优化的查询方式:传统的商业智能应用,特定问题的数据分析,多数据实体关联等不适合;
 数据结构相对固定,使用关系型数据库更好合理,使用sql进行查询统计更加便利的 时候等不适合;
通过上面的分析知道什么情况下使用MongoDB比较合理。下面来分析一下MongoDB在数据安全,灾备,集群容错上做了哪些努力。
第一:Mongodb会不会数据丢失?

可见:在不开启journal日志时是有可能导致数据丢失的(在60s之间或还没有到达2G时服务器宕机),但在开启了journal日志时数据是不会丢失的,Journal 日志类似于关系数据库中的事务日志。Journaling能够使MongoDB数据库由 于意外故障后快速恢复。MongoDB2.4版本后默认开启了Journaling日志功 能,mongod实例每次启动时都会检查journal日志文件看是否需要恢复。由于提交 journal日志会产生写入阻塞,所以它对写入的操作有性能影响,但对于读没有影响。 在生产环境中开启Journaling是很有必要的。
第二:MongoDB安全性如何?
MongoDB提供了各种数据库角色和登录验证,不同角色具有不同的操作权限,类似于关系型数据库。如:

第三:MongoDB集群容错做的怎么样?
在服务运行过程中难免会出现主机宕机的情况,前面已经说到即使MongoDB主机宕机也不会导致数据的丢失,但只能做到这点是不够的,还需要在主机宕机时还能正常对外提供服务,这就是集群容错。
MongoDB提供了俩种方式:
1.可复制集:
提供的功能:
1,避免数据丢失,保障数据安全,提高系统安全性;(最少3节点,最大50节点)
2.自动化灾备机制,主节点宕机后通过选举产生新主机;提高系统健壮性;(7个选举节点上限)
3.读写分离,负载均衡,提高系统性能;
2.分片集群
可复制集的一个缺点是每台MongoDB服务器都保有所有的数据,当数据量特别大时对cpu,内存要求就会越来越高,直到达到性能的瓶颈。分片集群为解决此问题而产生,分片集群就是不同的分片区域保有一部分数据,通过路由转发到对应的分片区域进行数据的读写。每个分片区域可以是一个可复制集,以此达到对更大数据量的容错。
第四:MongoDB的查询效率怎么样?
1.强大的查询语句,面向对象的查询语言,基本覆盖sql语言所有能力;
2.完整的索引支持,支持查询计划;
3.使用内存映射存储引擎,把磁盘的IO操作转换成为内存的操作;查询效率更高

欢迎关注”java面试工程师“公众号

为什么要使用mongodb相关推荐

  1. windows安装MongoDB环境以及在pycharm中配置可视化插件

    安装MongoDB数据库 参考这里 安装PyMongo python3 -m pip3 install pymongo指定版本 python3 -m pip3 install pymongo==3.5 ...

  2. SQL与NoSQL的区别 以MySQL与MongoDB为例

    异同对比 1.语言和结构层面 SQL数据库,是基于表的,并且用结构化语言也就是SQL来定义和操纵数据.一方面,这是非常强大的:SQL是最通用和最广泛使用的选项之一,使其成为一个安全的选择,尤其适用于复 ...

  3. php配置mongodb扩展、安装mongodb服务教程

    安装mongodb服务. 1.下载mongodb: mongodb 提供了可用于 32 位和 64 位系统的,你可以从mongodb官网下载安装. mongodb下载地址:https://www.mo ...

  4. MongoDB之conf配置文件详解

    详细看一下mongodb配置文件. mongodb.conf # mongodb.conf# 数据库文件位置 dbpath=/var/lib/mongodb#日志文件的路径 logpath=/var/ ...

  5. CentOS7.4 安装mongodb

    温馨提示:我的环境是腾讯云自带的CentOS7.4 x64 镜像,本地环境是win10 x64 专业版,ssh工具是用的win10 自带的cmd, 远程工具版本是Robo 3T 1.2.1 . 如果环 ...

  6. Centos7下安装MongoDB

    简介 MongoDB 是一个基于分布式 文件存储的NoSQL数据库 由C++语言编写,运行稳定,性能高 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案 查看官方网站 MongoDB特点 模式自 ...

  7. php mongodb execute,php简单操作mongodb

    您现在的位置是:网站首页>>PHP>>php php简单操作mongodb 发布时间:2019-09-29 16:34:25作者:wangjian浏览量:525点赞量:0 一: ...

  8. 【MongoDB异常】Exception authenticating MongoCredential解决方法

    我们通过ideal编辑器编辑 springboot时候,出现这个错误: com.mongodb.MongoSecurityException: Exception authenticating Mon ...

  9. mongodb插入数据获取本次插入的mongodb id

    最近接了一个别人的项目做二次开发,使用php进行mongodb的数据操作时,需要插入数据后得到相应的mongodb 中的id,简单代码如下 $data = array('test' => 'aa ...

  10. mongodb之备份

    前言 数据库的备份非常重要 备份方式 使用Mongodb自带的运维管理工具(Ops Manager) 需要单独部署,比较麻烦和复杂 通过文件系统快照 Linux需要LVM支持 需要开启journal日 ...

最新文章

  1. Paddle预训练模型应用工具PaddleHub
  2. Java程序员必备!Redis面试复习大纲在手面试不慌
  3. 加载八叉树索引文件_这篇 MySQL 索引和 B+Tree 讲的太通俗易懂!
  4. [LG P2519][BZOJ2298][HAOI2011]problem a
  5. redhat6 使用raid5的系统安装
  6. Java事件侦听器函数_SWT 计算器 按钮事件监听 获取按钮text值
  7. 多区域OSPF的路由重发布
  8. 马斯克:特斯拉智能召唤功能已被使用超过55万次
  9. 续易crm源码客户资源管理系统crm源码(源代码c#)
  10. 带格式文本html 直接复制粘贴,通过JS将带格式的文本复制到剪贴版的两种方法...
  11. 理解CSRF(跨站请求伪造)
  12. mysql关联查询关键字_MySQL数据高级查询之连接查询、联合查询、子查询
  13. Scratch的广播与消息
  14. 程序员坐牢了,会被安排写代码吗?
  15. 冯鑫、雷军、王峰、蒋涛、傅盛等金山系老将,已将区块链拼成完整生态图
  16. 明大推荐系统导论笔记 week 2
  17. 再练动态规划——(4)涂抹果酱
  18. 用户可利用自己的计算机通过因特网采用,2013年春季江苏省高校计算机一级B考试理论题(附答案)_-_副本...
  19. Teradata天睿公司任命王波为大中华区总裁
  20. C++函数的递归调用

热门文章

  1. Maya 2023安装步骤(附安装、汉化、图文教程)
  2. 《好好说话》 学习笔记
  3. 流利阅读 2019.1.30 China’s Baidu pledges to improve search service after complaint
  4. HTML表格竖边框线,Table表格横竖线实现Css
  5. python将横转为竖_【后端开发】python数据竖着怎么变横的?
  6. 华为rh2288服务器芯片组,华为RH2288H V2服务器内部介绍
  7. 华为认证HCIA-云服务工程师正式发布
  8. 【历史上的今天】4 月 4 日:互联网新时代的缔造者出现;微软成立;苹果公司元老诞生
  9. 硬盘分区格式GPT与MBR无损互相转换而不破坏硬盘存储资料
  10. Inventory文件扩展