概述

MongoDB(Humongous Database),中文意思就是巨大无比的数据库,顾名思义,MongoDB就是为处理大数据而生,以解决海量数据的存储和高效查询使用为使命。MongoDB是一款强大、灵活、易于扩展的通用型数据库它,能扩展出非常多的功能,如排序、范围查找、聚合、地理空间索引等,同时具有方便的集群管理模式及完善的运维辅助工具。

功能特性

  • 灵活的文档模型,加字段自由,同时不受数据类型限制;
  • 基于文档的数据库系统,格式以BSON(JSON,半结构化数据)存储;
  • 高可用复制集,自动故障转移;
  • 强大索引功能支持,允许多种快速查询,且提供唯一索引、复合索引、地理空间索引以及全文索引;
  • 高性能,mmapv1、wiredtiger、in-memory 等多引擎支持满足各种场景需求; (后续自研版本会支持rocksdb提升写入性能)
  • 高压缩比,占用磁盘空间小;
  • 地理空间支持,支持多点、线段、面、多边形、单点、多线段、multipolygon、几何体集合GeoJSON格式,支持符合空间索引、2D索引, 2dsphere 索引;
  • 完善的分布式扩缩容、数据迁移功能,扩缩容、数据迁移完美支持;
  • 主从复制支持异步复制和Raft复制,其中异步复制有可靠的rollback机制保证不丢数据,raft复制数据可靠性更高
  • 4.X版本已经支持事务功能,其中4.2版本开始支持分布式事务
  • 自研版本数据热备支持,实时数据备份、恢复

适用场景

  • 高并发读写;
  • 模式自由,随意字段添加,对于那种随时需要更改数据结构;
  • 数据量大,需要随时扩容的场景;
  • 磁盘空间小,最大化利用磁盘空间
  • 高可扩展性的应用场景;
  • 数据可靠性要求高的场景

不适用场景

  • 在多个不用维度对不用类型的数据进行关联(join),MongoDB不支持,建议使用mysql

MongoDB、ElasticSearch、Redis、HBase、Mysql选型比较

MongoDB特性及使用场景的更多相关文章

  1. Redis高级特性及应用场景

    Redis高级特性及应用场景 redis中键的生存时间(expire) redis中可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它. 过期时间可以设置为秒或者毫秒精度. ...

  2. 二、RabbitMQ 进阶特性及使用场景 [.NET]

    前言 经过上一篇的介绍,相信大家对RabbitMQ 的各种概念有了一定的了解,及如何使用RabbitMQ.Client 去发送和消费消息. 特性及使用场景 1. TTL 过期时间 TTL可以用来指定q ...

  3. Mysql、MongoDB对比和使用场景

    MongoDB: 更高的写入负载 默认情况下,MongoDB更侧重高数据写入性能,而非事务安全,MongoDB很适合业务系统中有大量“低价值”数据的场景.但是应当避免在高事务安全性的系统中使用Mong ...

  4. HBase篇(1)-特性与应用场景

    [每日五分钟搞定大数据]系列,HBase第一篇 结束了Zookeeper篇, 接下来我们来说下Google三驾马车之一BigTable的开源实现:HBase,要讲的内容暂定如下: 这是第一篇我们先不聊 ...

  5. redis特性,使用场景

    redis特性: 1.redis保存在内存中,读写速度快. 2.redis--持久化(断电数据不丢失:对数据的更新将异步保存到磁盘上). 3.redis数据结构丰富 4.redis功能丰富 5.简单( ...

  6. BFC的特性及使用场景

    BFC(Block Formatting Context)块级格式化上下文,是Web页面 CSS 视觉渲染的一部分,用于决定块盒子的布局及浮动相互影响范围的一个区域. BFC的特性: 1. 属于同一个 ...

  7. redis特性与使用场景

    一.8大特性 1.速度快 数据存储在内存,可达到10万OPS 2.可持久化,断电不丢数据 所有数据保存在内存中,对数据的更新异步的保存在硬盘中 3.多种数据结构 字符串.哈希.列表.集合.有序集 合位 ...

  8. Redis特性和应用场景

    Redis特性 速度快 Redis使用标准C编写实现,而且将所有数据加载到内存中,所以速度非常快.官方提供的数据表明,在一个普通的Linux机器上,Redis读写速度分别达到81000/s和11000 ...

  9. MongoDB的优势应用场景和配置

    一:MongoDB的简介: MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案 MongoDB是一个介于关系数据库和非关系数据库之间的 ...

随机推荐

  1. Java&Quartz实现任务调度

    目录 Java&Quartz实现任务调度 1.Quartz的作用 2.预备 3.Quartz核心 3.1.Job接口 3.2.JobDetail类 3.3 JobExecutionContex ...

  2. C# 与 C/C++ 网络传输字符串解决方案

    { 不管你的数据加没加密,只要有中文,请转16进制后再处理,把16进制再转为GB2312的byte再发送, 接收的话同样 c++ 发送时转16进制再发送,c#16进制转字符串后再转GB2312就可以了 ...

  3. JS自定义Array原型移除函数

    <script type="text/javascript"> //删除元素值 Array.prototype.remove = function(element){ ...

  4. 用jQuery,ajax,实现三级联动封装JS的文件

    // JavaScript Document $(document).ready(function(e) { //找到ID=SANJI的DIV,造三个下拉扔进去 var str = "< ...

  5. OpenSceneGraph | OSG如何存储带纹理osgb格式可以节省空间

      在使用OSG(OpenSceneGraph)存储带纹理osgb格式的过程中,大家会遇到这样一种情况:存储后的osgb文件所占用的大小远大于原始文件的大小,几倍至几十倍.这是为何呢?原因是OSG默认 ...

  6. 文本数据和mysql 里面的数据比较

    实现读取TXT文件中的内容然后存到内存,然后将内存中的数据和mysql 数据库里面某张表数据的字段做一个比较,如果比较内存中的数据在mysql 里存在则不做处理,如果不存在则将该数据插入mysql数据 ...

  7. Mybatis 使用的 9 种设计模式,真是太有用了~

    Java技术栈 ) {      name = fullname.substring(0, delim);      children = fullname.substring(delim + 1); ...

  8. 《转》python 9 字典,numpy

    http://www.cnblogs.com/BeginMan/p/3156960.html 一.映射类型 我理解中的映射类型是:键值对的关系,键(key)映射值(value),且它们是一对多的关系. ...

  9. Mysql集群和主从

    1.Mysql cluster: share-nothing,分布式节点架构的存储方案,以便于提供容错性和高性能. 需要用到mysql cluster安装包,在集群中的每一个机器上安装. 有三个关键概 ...

  10. C#& Screen 类&(&多&屏&幕&开&发)

    原文:C#& Screen 类&(&多&屏&幕&开&发) Screen 类 下面的代码示例演示如何使用 Screen 类的各种方法和属性. 该示 ...