mongoDB常见问题整理

多方收集整理成此篇,以后也会持续更新。

为什么要使用Nosql

关系型数据库采用的结构化的数据,NoSQL采用的是键值对的方式存储数据。

mongo使用场景:

在处理非结构化/半结构化的大数据时; 在水平方向上进行扩展时; 随时应对动态增加的数据项时可以优先考虑使用NoSQL数据库。 高并发解决方案时;

以下特点使得MongoDB成为最好的NoSQL数据库:

面向文件的 高性能 高可用性 易扩展性 丰富的查询语言 完全索引

mongoDB的基本结构

MongoDB的最基本的数据单元,叫document,类似于关系式数据库中的行 row。一系列documents,组成了一个collection,相当于关系式数据库中的table。当一个 collection 数据量太大时,可以把该collection按documents切分,分成多个数据块,每个数据块叫做一个chunk,多个chunks聚集在一起,组成了一个shard。

Sharding 的意义,不仅保障了数据库的扩容(scalability),同时也保障了系统的负载均衡(load balance)。

MongoDB支持存储过程吗?如果支持的话,怎么用?

MongoDB支持存储过程,它是JavaScript写的,保存在db.system.js表中。

如何执行事务/加锁?

MongoDB没有使用传统的锁或者复杂的带回滚的事务,因为它设计的宗旨是轻量,快速以及可预计的高性能。可以把它类比成MySQL MylSAM的自动提交模式。通过精简对事务的支持,性能得到了提升,特别是在一个可能会穿过多个服务器的系统里。

什么是“片键”

片键是拆分集合的依据,管理员设置的“片键”将数据分摊到自己管理的mongod集群,数据 和片的对应关系以及相应的配置信息保存在”config服务器”上。

什么是master或primary?

它是当前备份集群(replica set)中负责处理所有写入操作的主要节点/成员。在一个备份集群中,当失效备援(failover)事件发生时,一个另外的成员会变成primary。

主从复制模式:master slave 副本集 :primary(活跃) secondary(备份)

什么是secondary或slave?

Seconday从当前的primary上复制相应的操作。它是通过跟踪复制oplog(local.oplog.rs)做到的。

数据库的整体结构

键值对–》文档–》集合–》数据库

mongodb的结构介绍

数据库中存储的对象设计bson,一种类似json的二进制文件,由键值对组成

为什么mongodb的数据文件那么庞大

mongodb会积极的预分配预留空间,防止文件系统碎片

名字空间(namespace)是什么?

在collection中,数据库名+集合名叫做名字空间。也就是一个集合的完整名

数据在什么时候才会扩展到多个分片(shard)里?

mongodb分片是基于区域的,所以一个集合的所有对象都放置在同一个块中,只有当存在多余一个块的时候,才会有多个分片获取数据的选项

当我试图更新一个正在被迁移的块(chunk)上的文档时会发生什么?

会立即更新旧的分片,然后更改才会在所有权转移前复制到新的分片上

能否使用日志特征进行安全备份?

是的。

更新操作立刻fsync到磁盘?

一般磁盘的写操作都是延迟执行的

如果用户移除对象的属性,该属性是否从存储层中删除?

是的,用户移除属性然后对象会重新保存(re-save())。

分析器在MongoDB中的作用是什么?

分析器就是explain 显示每次操作性能特点的数据库分析器。通过分析器可能查找比预期慢的操作

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程

嵌入式Linux系统在线升级策略

由于市面上大多数嵌入式设备的分散、数量庞大、部署地点情况复杂,因此对于这些设备进行个体、本地升级的实施非常费时费力。针对这种现状,本文提供一种对基于 Linux...

32290
来自专栏JAVA后端开发

通用数据级别权限的框架设计与实现(5)-总结与延伸思考

继上篇文章通用数据级别权限的框架设计与实现(4)-单条记录的权限控制后,通用数据级别权限的框架设计已经实现,但我们就这样满足了吗? 代码也只是花了我两个晚上完...

9720
来自专栏运维技术迷

xz文件压缩工具的用法

最近在安装国外的开源软件的时候,总是下载到后缀名为xz的文件,乍一看听新鲜的,没有解压过xz文件,就在google上学习了一下,并且记录了一下这个命令的用法。 ...

46180
来自专栏IMWeb前端团队

react 的数据管理方案:redux 还是 mobx?

本文作者:IMWeb jerytang 原文出处:IMWeb社区 未经同意,禁止转载 mobx 简介 和 redux 类似,mobx 是一个数据管理库...

46370
来自专栏张善友的专栏

SQL Server 2008 压缩

执行SQL查询时,主要的几个瓶颈在于:CPU运算速度、内存缓存区大小、磁盘IO速度。而对于大数据量数据的查询,其瓶颈则一般集中于磁盘IO,以及内存缓存。那么为了...

241100
来自专栏漏斗社区

工具 | whatweb 初级篇

0x00简介: Whatweb是一个基于Ruby语言的开源网站指纹识别软件,正如它的名字一样,whatweb能够识别各种关于网站的详细信息包括:CMS类型、博...

63780
来自专栏散尽浮华

部署Linux下的man慢查询中文帮助手册环境

对于Linux运维工作者来说,man查询手册绝对是一个好东西。当我们对一些命令或参数有些许模糊时,可以通过man查询手册来寻求帮助。 其实Linux之所以强大,...

30050
来自专栏大数据和云计算技术

Cosmos DB的5种事物一致性

TP和AP最重要的区别就是事物。事务是指对系统进行的一组操作,为了保证系统的完整性,事务需要具有ACID特性,具体指原子性(Atomic)一致性(Consist...

47750
来自专栏JAVA高级架构

2018年一线互联网公司Java高级面试题总结

1、hashcode相等两个类一定相等吗?equals呢?相反呢? 2、介绍一下集合框架? 3、hashmap hastable 底层实现什么区别?hashta...

62380
来自专栏java思维导图

乐观锁的两种实现方式(总结和实践)

如果你觉得文字太长,可以直接先看文末思维导图总结,小编已为你整理了作者的主要观点,供你回顾与快速阅读~

15010

扫码关注云+社区

领取腾讯云代金券