处理多种常见的故障

单节点失效,如何恢复工作

数据库意外被杀死如何进行数据恢复

数据库发生拒绝服务如何排查原因

数据库磁盘快满时如何处理

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集群相关推荐

  1. 在Docker中安装和部署MongoDB集群

    在Docker中安装和部署MongoDB集群 - tianshidan1998 - 博客园

  2. mysql主从配置duxi_手把手超详细Docker部署MongoDB集群

    Mongodb集群搭建 mongodb 集群搭建的方式有三种:主从备份(Master - Slave)模式,或者叫主从复制模式. 副本集(Replica Set)模式. 分片(Sharding)模式. ...

  3. k8s使用StatefulSet部署MongoDB集群

    1.1 前提准备 制作MongoDB 镜像,可从 Docker Hub 官网 下载镜像,目的是解决提示权限mongo-sidecar提示权限错误问题(官方镜像基础上添加了密码认证) 生成 keyfil ...

  4. k8s部署MongoDB集群(李作强)

    编写service的文件: [root@k8s-master-1 mongodb]# vim service.yaml apiVersion: v1 kind: Service metadata: n ...

  5. MongoDB部署分片集群

    MongoDB分片集群简介 在单机环境下,高频率的查询会给服务器 CPU 和 I/O 带来巨大的负担,基于这个原因,MongoDB 提供了分片机制用于解决大数据集的分布式部署,从而提高系统的吞吐量.一 ...

  6. 搭建高可用mongodb集群(二)—— 副本集

    2019独角兽企业重金招聘Python工程师标准>>> 在上一篇文章<搭建高可用MongoDB集群(一)--配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能 ...

  7. mongodb集群与分片的配置说明

    mongodb集群与分片的配置说明 Shardingcluster介绍: 这是一种可以水平扩展的模式,在数据量很大时特给力,实际大规模应用一般会采用这种架构去构建monodb系统. 系统分为需要三种角 ...

  8. mongodb集群-副本集(CSRS)

    一.概述 (1)MongoDB复制是将数据同步在多个服务器的过程. (2)复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性. (3)复制还允许您从硬 ...

  9. MongoDB4.4版本源码部署分片集群

    MongoDB4.4版本源码部署分片集群 node1:39.103.204.27 node2:49.232.197.39 node3:43.138.41.190 shard1 PRIMARY shar ...

最新文章

  1. iptables 基本命令使用举例
  2. 辽师836c语言真题,2018年武汉科技大学考研真题硕士研究生入学考试试题
  3. rms 公式 有效值_怎样求信号中的RMS值?
  4. 人工智能:模型与算法 之 启发式搜索
  5. 【Java作业】实验二 货物进销管理系统(运行成功完整代码
  6. 【OpenCV 例程200篇】73. 二维连续傅里叶变换
  7. Python安装第三方库临时使用国内源
  8. 练打字-测试看图说话(AD安装)
  9. 【图像隐写】基于matlab GUI DCT变换图像隐写【含Matlab源码 1380期】
  10. prometheus使用cAdvisor监控容器
  11. 相对url和相对路径
  12. 统计推断-经典统计推断
  13. 044_Unicode对照表十
  14. 华为荣耀路由器虚拟服务器,荣耀路由器怎么设置?
  15. 天津地铁3号线领舞华苑板块再飞跃
  16. Unity——写入和读取Json信息的方法
  17. postsql——存储(TableSpace)
  18. 【Java编程指南】语法基础
  19. VFX Graph 魔法图书馆
  20. 高通骁龙660/骁龙662/骁龙665/骁龙670/骁龙675参数对比介绍

热门文章

  1. 学习 WCF (1)--基础篇
  2. C#服务器端获取客户端(html)控件值
  3. 分布式数据库中间件Mycat百亿级数据存储(转)
  4. kafka解决了什么问题?
  5. golang连接mysql操作示例增删改查(已经测试)
  6. php sql 二次注入,espcms 二次注入一枚
  7. fiddler使用_为什么要使用fiddler抓包?抓包用来干什么?
  8. android+mysql+server+error_Lost connection to MySQL server during query错误 | 学步园
  9. win8系统关闭共享服务器,Windows8系统关闭Windows Media Player网络共享服务的方法
  10. 服务器输入字符在客户端显示,管理 Unicode 服务器与非 Unicode 客户端之间的数据转换...