部署MongoDB集群
处理多种常见的故障
单节点失效,如何恢复工作
数据库意外被杀死如何进行数据恢复
数据库发生拒绝服务如何排查原因
数据库磁盘快满时如何处理
MongoDB
无数据结构限制:
1. 没有表结构的概念,每条记录可以有完全不同的结构
2. 业务开发方便快捷
3. Sql数据库需要事先定义表结构在使用
{name:”小明”,sex:”man”}
{name:”小红”,address:”shanghai”}
{name:”小兰”,home:[{“山东”},{“江西”}]}
完全的索引支持
1. redis的key-value
2. hbase的单索引,二级索引需要自己实现,写入速度快,但是查询速度慢
3. 方便的冗余与扩展
a) 复制集保证数据安全
b) 分片扩展数据规模
基本操作
连接:mongo 127.0.0.1:27017
查看有多少数据库:show dbs
使用use切换数据库:use Vincent
删除数据库:db.dropDatabase()
在次使用命令:use imooc,
在使用use之前我们不需要对数据库进行额外的创建,mongod会在需要的时候自己创建。在Mongo中我们将一张表称作一个集合。
在mongodb中如何进行写入:db.imooc_collection.insert({x:1}),这个insert中接入参数,格式为json(json是一种很流行的数据结构,是用可嵌套的键值对存储数据)
使用show collections 可以查看我们之前创建的表
查询语句:db.imooc_collection.find(),查询条件可以为空
‘_id’字段是mongodb自己生成的字段,在全局范围内不会重复,在分布式数据库中一定要有一个全局唯一的字段来进行数据处理,我们也可以自己制定_id字段,但是不能重复
使用js语句进行插入数据,
条件查询:查询3以后的2条数据,并按x排序
数据的更新:db.imooc_collection.update({x:1},{x:999})
查询,发现更新成功
插入语句,然后更新z为100的那条数据中的y为99,而x不变
当我们更新不存在的数据时,如果要插入这条数据,设置参数为true,就会插入
更新多条数据时,mongodb只会更新第一条数据,首先插入3条相同的数据
然后执行命令db.imooc_collection.update({c:1},{c:2})
Mongodb这样设计是为了防止不小心的误操作。
如果想更新多条数据,
db.collection.update( criteria, objNew, upsert, multi )
criteria : update的查询条件,类似sql update查询内where后面的
objNew : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
upsert : 这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
这样就实现了更新多条数据
删除操作:db.imooc_collection.find({c:2})
show tables /show collections 当前数据库的集合
创建索引:在数据量较大时不使用索引,查询较慢
使用命令:db.imooc_collection.getIndexes()查看索引使用情况
创建索引
创建x:1的索引。查询高效
索引的种类与使用
l _id索引是绝大多数集合默认建立的索引
对于每个插入的数据,MongoDB都会自动生成一条唯一的_id字段
l 单键索引
单键索引是最普通的索引,与_id索引不同,单键索引不会自动创建
l 多键索引与单键索引创建形式相同,区别在于字段的值
单键索引:值为一个单一的值,例如字符串,数字或者日期
多键索引:值具有多个记录,例如数组。
l 复合索引
当我们的查询条件不只有一个时,就需要建立复合索引
l 过期索引:是在一段时间后会过期的索引
在索引过期后,相应的数据会被删除
这适合存储一些在一段时间之后会失效的数据,比如用户的东路信息,存储的日志
建立方法:db.collection.ensureIndex({time:1},{expireAfterSeconds:10})
注意:存储在过期索引字段的值必须是指定的时间类型
必须是ISODate或者ISODate数组,不能使用时间戳,否则不能被自动删除
如果指定了ISODate数组,则按照最小的时间进行删除
过期索引不能是复合索引。
删除时间不是精确的。删除过程是由后台程序每60s跑一次,而且删除也需要一些时间,所以存在误差
索引的匹配规则
如何建立合适的索引
部署MongoDB集群相关推荐
- 在Docker中安装和部署MongoDB集群
在Docker中安装和部署MongoDB集群 - tianshidan1998 - 博客园
- mysql主从配置duxi_手把手超详细Docker部署MongoDB集群
Mongodb集群搭建 mongodb 集群搭建的方式有三种:主从备份(Master - Slave)模式,或者叫主从复制模式. 副本集(Replica Set)模式. 分片(Sharding)模式. ...
- k8s使用StatefulSet部署MongoDB集群
1.1 前提准备 制作MongoDB 镜像,可从 Docker Hub 官网 下载镜像,目的是解决提示权限mongo-sidecar提示权限错误问题(官方镜像基础上添加了密码认证) 生成 keyfil ...
- k8s部署MongoDB集群(李作强)
编写service的文件: [root@k8s-master-1 mongodb]# vim service.yaml apiVersion: v1 kind: Service metadata: n ...
- MongoDB部署分片集群
MongoDB分片集群简介 在单机环境下,高频率的查询会给服务器 CPU 和 I/O 带来巨大的负担,基于这个原因,MongoDB 提供了分片机制用于解决大数据集的分布式部署,从而提高系统的吞吐量.一 ...
- 搭建高可用mongodb集群(二)—— 副本集
2019独角兽企业重金招聘Python工程师标准>>> 在上一篇文章<搭建高可用MongoDB集群(一)--配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能 ...
- mongodb集群与分片的配置说明
mongodb集群与分片的配置说明 Shardingcluster介绍: 这是一种可以水平扩展的模式,在数据量很大时特给力,实际大规模应用一般会采用这种架构去构建monodb系统. 系统分为需要三种角 ...
- mongodb集群-副本集(CSRS)
一.概述 (1)MongoDB复制是将数据同步在多个服务器的过程. (2)复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性. (3)复制还允许您从硬 ...
- MongoDB4.4版本源码部署分片集群
MongoDB4.4版本源码部署分片集群 node1:39.103.204.27 node2:49.232.197.39 node3:43.138.41.190 shard1 PRIMARY shar ...
最新文章
- iptables 基本命令使用举例
- 辽师836c语言真题,2018年武汉科技大学考研真题硕士研究生入学考试试题
- rms 公式 有效值_怎样求信号中的RMS值?
- 人工智能:模型与算法 之 启发式搜索
- 【Java作业】实验二 货物进销管理系统(运行成功完整代码
- 【OpenCV 例程200篇】73. 二维连续傅里叶变换
- Python安装第三方库临时使用国内源
- 练打字-测试看图说话(AD安装)
- 【图像隐写】基于matlab GUI DCT变换图像隐写【含Matlab源码 1380期】
- prometheus使用cAdvisor监控容器
- 相对url和相对路径
- 统计推断-经典统计推断
- 044_Unicode对照表十
- 华为荣耀路由器虚拟服务器,荣耀路由器怎么设置?
- 天津地铁3号线领舞华苑板块再飞跃
- Unity——写入和读取Json信息的方法
- postsql——存储(TableSpace)
- 【Java编程指南】语法基础
- VFX Graph 魔法图书馆
- 高通骁龙660/骁龙662/骁龙665/骁龙670/骁龙675参数对比介绍
热门文章
- 学习 WCF (1)--基础篇
- C#服务器端获取客户端(html)控件值
- 分布式数据库中间件Mycat百亿级数据存储(转)
- kafka解决了什么问题?
- golang连接mysql操作示例增删改查(已经测试)
- php sql 二次注入,espcms 二次注入一枚
- fiddler使用_为什么要使用fiddler抓包?抓包用来干什么?
- android+mysql+server+error_Lost connection to MySQL server during query错误 | 学步园
- win8系统关闭共享服务器,Windows8系统关闭Windows Media Player网络共享服务的方法
- 服务器输入字符在客户端显示,管理 Unicode 服务器与非 Unicode 客户端之间的数据转换...