MongoDB高级知识
MongoDB高级知识
一.mongodb适合场景:
1.读写分离:
MongoDB服务采用三节点副本集的高可用架构,三个数据节点位于不同的物理服务器上,自动同步数据。Primary和Secondary节点提供服务。两个节点分别提供独立域名,配合MongoDB Driver可自行实现读取压力分配。
2.业务灵活多变:
由于MongoDB采用No-Schema的方式,对于初创型的业务非常适用,免去变更表结构的痛苦。用户可以将模式固定的结构化数据存储在RDS中,模式灵活的业务存储在 MongoDB中,高热数据存储在云数据库Memcache或云数据库Redis中,实现对业务数据高效存取,相应降低成本投入。
3.移动应用:
云数据库MongoDB版支持二维空间索引,可以完美的支撑基于位置查询的移动类APP的业务需求。同时MongoDB动态模式存储方式非常适合存储多重系统的异构数据, 满足移动APP应用的需求。
4.物联网应用:
云数据库MongoDB版性能极高,具备异步数据写入功能,特定场景下可达到内存数据库的性能,非常适合物联网高并发写入的场景。同时MongoDB的map-reduce功能 也可以将大量数据进行聚合分析。
5.核心日志系统:
云数据库MongoDB版在异步落盘场景下可提供极高的插入性能,具备内存数据库的处理能力。MongoDB提供二级索引功能满足动态查询的需求,并且可以利用map- reduce的聚合框架进行多维度的数据分析。
二.mongodb v3.4有那些更新:
1.更快的复制集全量同步:
在拷贝数据的时候,同时建立所有的索引(以前版本只有_id索引是在同步数据时建立的),拷贝数据的阶段,secondary 不断拉取新的 oplog,确保 secondary 的 local 数据库有足够的空间来存储这些临时数据。
2.更高效的负载均衡:
MongoDB 3.2及以前版本里,分片集群的负载均衡由mongos负责,多个 mongos 会抢一个分布式锁,抢锁成功的 mongos 会对执行负载均衡任务,在shard间迁移chunk;在3.4版本里,负载均衡将由config server的 primary 节点负责,负载均衡并发度及效率上会有大的提升。
3.更丰富的Aggregation操作:
MongoDB 在3.4版本增加了大量的 aggregation 操作符,数据分析功能更加强大,如bucket 能方便的对数据进行分类;$grahpLookup 在 3.2的$lookup 的基础上更进一步,能支持更复杂的关系运算;$addFields使得文档操作更丰富,比如将某些字段求和存储为新的字段。
4.支持 Sharding Zones:
分片集群里引入了 Zone 的概念,主要取代现在的 tag-aware sharding 机制,能将某些数据分配到指定的一个或多个 shard 上,这个特性将极大的方便 sharding cluster 的跨机房部署。
5.支持 Collation:
MongoDB 3.4 开始支持 collation,在之前的版本里,文档里存储的字符串,不论是中文还是英文,不论大小写,一律按字节来对比,引入 collation 后,支持对字符串的内容进行解读,可以按使用的 locale 进行对比,也支持对比时忽略大小写。
6.支持只读视图(Read-only views):
MongoDB 3.4里增加了对只读视图的支持,视图将集合里满足某个查询条件的数据虚拟成一个特殊的集合,用户可以在特殊的集合上做进一步的查询操作。
7.引擎更新换代:
WiredTiger存储引擎:基于 btree 结构组织数据,相比 MongoDB早期的 mmapv1 存续引擎性能上有非常大的提升,而且支持数据压缩,存储成本更低。
RocksDB存储引擎:是基于 LSM tree 结构组织数据,其针对写入做了优化,将随机写入转换成了顺序写入,能保证持续高效的数据写入。
TerarkDB存储引擎:借助 TerarkDB 的全局压缩技术,在提高压缩率的同时,能大幅提高随机查询的性能。
MongoDB高级知识的更多相关文章
- DataBase MongoDB高级知识-易使用
MongoDB高级知识-易使用 mongodb是一个面向文档的数据库,而不是关系型数据库.不采用关系模型主要是为了获取更好的扩展性.当然还有其他的一些好处. 与关系型数据库相比,面向文档的数据库不再有 ...
- DataBase MongoDB高级知识-易扩展
MongoDB高级知识-易扩展 应用程序数据集的大小正在以不可思议的速度增长.随着可用宽带的增长和存储器价格的下跌,即使是一个小规模的应用程序,需要存储的数据也可能大的惊人,甚至超出了很多数据库的处理 ...
- DataBase MongoDB高级知识
MongoDB高级知识 一.mongodb适合场景: 1.读写分离:MongoDB服务采用三节点副本集的高可用架构,三个数据节点位于不同的物理服务器上,自动同步数据.Primary和Secondary ...
- MongoDB高级知识-易使用
MongoDB高级知识-易使用 mongodb是一个面向文档的数据库,而不是关系型数据库.不采用关系模型主要是为了获取更好的扩展性.当然还有其他的一些好处. 与关系型数据库相比,面向文档的数据库不再有 ...
- MongoDB高级知识-易扩展
MongoDB高级知识-易扩展 应用程序数据集的大小正在以不可思议的速度增长.随着可用宽带的增长和存储器价格的下跌,即使是一个小规模的应用程序,需要存储的数据也可能大的惊人,甚至超出了很多数据库的处理 ...
- MongoDB高级知识(六)
1. document的关系 多个文档之间在逻辑上可以相互联系,可以通过嵌入和引用来建立联系. 文档之间的关系可以有: 1对1 1对多 多对1 多对多 一个用户可以有多个地址,所以是一对多的关系. # ...
- MongoDB基础知识 02
MongoDB基础知识 02 6 数据类型 6.1 null : 表示空值或者不存在的字段 {"x":null} 6.2 布尔型 : 布尔类型只有两个值true和false {&q ...
- MongoDB基础知识 01
MongoDB基础知识 1. 文档 文档是MongoDB中的数据的基本单元,类似于关系型数据库管理系统的行. 文档是键值对的一个有序集.通常包含一个或者多个键值对. 例如: {”greeting& ...
- MongoDB高级查询用法大全
转载 http://blog.163.com/lgh_2002/blog/static/440175262012052116455/ 详见官方的手册: http://www.mongodb.org/d ...
随机推荐
- spring+mybatis之注解式事务管理初识(小实例)
1.上一章,我们谈到了spring+mybatis声明式事务管理,我们在文章末尾提到,在实际项目中,用得更多的是注解式事务管理,这一章将学习一下注解式事务管理的有关知识.注解式事务管理只需要在上一节的 ...
- jqgrid 自动换行
<style>.ui-jqgrid tr.jqgrow td { white-space: normal !important; height: auto; vertical-align: ...
- java算法 第七届 蓝桥杯B组(题+答案) 6.方格填数
6.方格填数 (结果填空) 如下的10个格子 (如果显示有问题,也可以参看[图1.jpg]) 填入0~9的数字.要求:连续的两个数字不能相邻.(左右.上下.对角都算相邻) 一共有多少种可能的填数方案 ...
- iOS导航栏自由缩放头像效果
效果图: 上代码: 先给一个self.navigationItem.titleView ,然后再放个ImangeView添加到titleView上: UIView *titleView = [[UIV ...
- windows 查看端口被占用进程
查看占用63243是谁 C:\Users\Administrator>netstat -aon|findstr "63243" TCP 172.27.33.11:63243 ...
- servicestack.redis工具类
using System;using System.Collections.Generic;using System.Linq;using ServiceStack.Redis;using Servi ...
- 冲刺NOIP2015提高组复赛模拟试题(五) 3.破坏基地
3.破坏基地 描述 Description 在Z国和W国之间一直战火不断. 好不容易,W国的间谍把完整的Z国的军事基地的地图到手了. 于是W国决定再次出击,一举击破Z国的防线. W国认真研究了Z国的地 ...
- Linux 上安装 rlwrap
1.安装rlwrap的初衷; 2.安装rlwrap工具和遇到的问题; 3.使用rlwrap 工具; 1.安装rlwrap的初衷: 在Windows 下使用SQLPLUS都是可以使用上下左右方向键前后左 ...
- poj 1066 Treasure Hunt (未完)
#include<stdio.h> #include<math.h> #include<stdlib.h> #define eps 1e-8 #define zer ...
- Java SimpleDateFormat用法
? Java中怎么才能把日期转换成想要的格式呢,或把字符串转换成一定格式的日期,如把数据库中的日期或时间转换成自己想要的格式,JAVA中提供了SimpleDateFormat类可以实现,以下是Si ...