Mongo管理
MongoDB存储引擎
一. WiredTiger引擎
1. MongoDB3.2版本以上,设置为存储引擎。
2. 基于文档级别的并发控制功能(锁机制)
(1). 锁级别:文档级别
(2). 如何监控锁的信息
db.serverStatus().lock
db.currentOp()
mongotop
mongostat
(前两条在MongoDB里执行,后两条在bin目录下执行)
测试数据:for(var i=1;i<=1000000;i++){
db.testlock.insert({"_id":i,"action":"Write new documentatition","currentNumber":i});
}
3.检查点机制:checkpoint
(1). 当MongoDB发生检查点以后,以一致性的方式(快照)把内存中所有的脏数据写到数据文件上
(2). 什么时候发生检查点
a.时间间隔:60秒
b.日志文件大小(journal日志):2G
MongoDB存储过程

正常流程:客户端插入文档------->内存中保存文档,并将对应的操作写入journal日志中------->产生检查点------->内存中数据写入磁盘
服务器宕机:当服务器挂掉以后内存中未被保存的数据丢失,MongoDB到journal日志中查找日志内容,找回丢失的数据,待到检查点产生以后在写入磁盘。
4.预写日志,数据压缩,数据加密
(1). 预写日志:当插入数据的时候,首先将数据信息对应的日志写到日志文件中(journal);一旦产生检查点,将内存中的数据写入到数据文件中
(2). 数据压缩:3.0后版本中,提供三个压缩选项
*无压缩
*Snappy:默认压缩方式
*zlib:类似gzip
一个小栗子:db.createCollection("email",{storageEngine:{wiredTiger:{configString:'block_compressor='zlib''}}})
5.其他功能:
(1).设置有效内存使用:
(*)内部缓存: 大小: 默认 1G或者 50% RAM ~ 1G
--wiredTigerCacheSizeGB arg maximum amount of memory to allocate
for cache; defaults to 1/2 of physical RAM
(*)文件系统缓存
(2)空间的回收
(*)当删除数据(文档、集合)后,MongoDB并不会将空间释放会OS
(*)会在数据文件中,维护空的列表信息(当下次再这个集合中进行添加操作时,MongoDB不需要再去OS请求内存空间,可以直接使用维护的的空列表信息,这样就提升了性能)
(*)使用命令:compact 回收空间
db.runCommand({compact:'集合'})
一个:对员工表回收空间: db.runCommand({compact:'emp'})
二、MongoDB也会将对应的日志存入Journal日志中,防止数据的丢失。
1、以WiredTiger进行介绍
2、每个Journal日志大小:100M
3、启动MongoDB的时候,默认启用日志记录 参数:--journal
Mongo管理的更多相关文章
- mongo管理工具
启动 D:\Program Files\MongoDB\Server\3.4\bin\mongod.exe --dbpath d:\data\db 还原 D:\Program Files\MongoD ...
- MongoDB基础
1.概念及特点 说明:由于部分语句中$ 符号无法正常显示,使用¥代表 概念 MongoDB是一个基于文档的分布式的开源的NoSQL数据库,文档的结构为BSON形式,每一个文档都有一个唯一的Object ...
- NodeJs中数据库的使用
另一遍通用的NODEJS数据库方法koa,express,node 通用方法连接MySQL 1.Node.js 连接 MySQL $ cnpm install mysql 连接mysql: var m ...
- Node.js:连接 MongoDB
ylbtech-Node.js:连接 MongoDB 1.返回顶部 1. Node.js 连接 MongoDB MongoDB是一种文档导向数据库管理系统,由C++撰写而成. 本章节我们将为大家介绍如 ...
- node12---mongodb
一.传统数据库技术回顾 数据库就是存储数据的,那么存储数据就用txt就行了啊,为什么要有数据库? 理由之1: 数据库有行.列的概念,数据有关系,数据不是散的. 老牌数据库,比如MySQL.SQL Se ...
- Node.js Learning Notes
简介 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. Node.js是一个事件驱动I/O服务 ...
- Dapps-是一个跨平台的应用服务商店
简介 Dapps 是一个跨平台的应用商店,包含众多软件,基于docker dapps是什么? 它是一个应用程序商店,包含丰富的软件,因为基于docker,使你本机电脑有云开发的效果. 一键安装程序:多 ...
- Mongo 用户创建及权限管理
Mongo版本3.0之前使用的是db.addUser(),但3.0之后使用的是db.createUser() 内建的角色: 数据库用户角色:read.readWrite; 数据库管理角色:dbAdmi ...
- mongo 3.4分片集群系列之八:分片管理
这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...
随机推荐
- docker容器与宿主机的数据交互
在生产环境中使用 Docker ,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作. 方式一.Docker cp命令 docker cp :用于容器与主机之间 ...
- Luogu P1856 [USACO5.5]矩形周长Picture
线段树+扫描线 经典的扫描线问题 首先将一个矩形看作由竖着的两条边和横着的两条边构成 那分成两次考虑,一次考虑竖边,一次考虑横边 首先考虑横边 如图两个矩形,现将横边擦去,留下竖边,将平面划分成3个区 ...
- 【Kata Daily 190919】Sort Out The Men From Boys(排序)
题目: Scenario Now that the competition gets tough it will Sort out the men from the boys . Men are th ...
- day83:luffy:添加购物车&导航栏购物车数字显示&购物车页面展示
目录 1.添加购物车+验证登录状态 2.右上方购物车图标的小红圆圈数字 3.Vuex 4.购物车页面展示-后端接口 5.购物车页面展示-前端 6.解决一个购物车数量显示混乱的bug 1.添加购物车+验 ...
- Pycharm激活码,最新2020Pycharm永久激活码!!!
分享一个Pycharm激活码给各位,是一个永久的Pycharm激活码~ 要是下边的这个Pycharm激活码失效了的话,大家可以关注微信公众号:Python联盟,然后回复"激活码"即 ...
- Aps.Net Core3.1 WebApi发送阿里云短信验证码
1.前言 转眼又要过了一年了 好久没写博客了,人不学就要落后,今天有时间把以前弄的发送阿里云短信验证码登录记录一下. 2.准备条件 1)去阿里云官网注册一个账号.有账号直接登录就行,以前新人好像有免费 ...
- 什么是LRU缓存淘汰机制
LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰.该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历 ...
- ERP中HR模块的操作与设计--开源软件诞生26
赤龙ERP的EHR功能讲解--第26篇 用日志记录"开源软件"的诞生 [进入地址 点亮星星]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/red ...
- close与shutdown
首先看一个例子,如下图所示: 当我们客户端发送ABCD再close套接字的时候,服务器端的接收通道也被关闭了,将无法接收ABCD的数据.如果想要仅仅关闭发送通道,保留接收通道,可以使用shutdown ...
- Python可视化界面
可视化界面程序,本来不想写,只在console台运行就好,但是后来很多小伙伴都有这样的需求: 需要从redis中删除某个key的value,然后需要跟key去查,有些小伙伴不会用redis,就产生如下 ...