大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说mongodb 面试题总结[通俗易懂],希望能够帮助大家进步!!!
mongodb 面试题总结
1 nosql和关系型数据库的区别
2 nosql数据库有哪些
代码语言:javascript复制redis mongodb hbase
3 MySQL与mongodb本质之间最基本的差别是什么
代码语言:javascript复制 差别在多方面 例如 数据的表示,查询 关系 事务 模式的设计和定义 速度和性能
4. 你怎么比较MongoDB、CouchDB及CouchBase?
代码语言:javascript复制 不知道
5 使用mongodb的优点
代码语言:javascript复制面向文件
高性能
高可用
易扩展
可分片
对数据存储友好
8. 分析器在MongoDB中的作用是什么?
代码语言:javascript复制分析器就是explain 显示每次操作性能特点的数据库分析器。通过分析器可能查找比预期慢的操作
9名字空间(namespace)是什么?
代码语言:javascript复制 在collection中,数据库名 集合名叫做名字空间。也就是一个集合的完整名
10. 如果用户移除对象的属性,该属性是否从存储层中删除?
代码语言:javascript复制是的,用户移除属性然后对象会重新保存(re-save())。
11. 能否使用日志特征进行安全备份?
代码语言:javascript复制是的。
13. 更新操作立刻fsync到磁盘?
代码语言:javascript复制一般磁盘的写操作都是延迟执行的
14如何执行事务/加锁?
代码语言:javascript复制因为mongodb设计就是轻量高性能,所以没有传统的锁和复杂的事务的回滚
15为什么mongodb的数据文件那么庞大
代码语言:javascript复制mongodb会积极的预分配预留空间,防止文件系统碎片
17. 什么是master或primary?
代码语言:javascript复制当前备份集群负责所有的写入操作的主要节点,在集群中,当主节点(master)失效,另一个成员会变为master
18 getLastError的作用
代码语言:javascript复制调用getLastError 可以确认当前的写操作是否成功的提交
19. 分片(sharding)和复制(replication)是怎样工作的?
代码语言:javascript复制分片可能是单一的服务器或者集群组成,推荐使用集群
20. 数据在什么时候才会扩展到多个分片(shard)里?
代码语言:javascript复制mongodb分片是基于区域的,所以一个集合的所有对象都放置在同一个块中,只有当存在多余一个块的时候,才会有多个分片获取数据的选项
21. 当我试图更新一个正在被迁移的块(chunk)上的文档时会发生什么?
代码语言:javascript复制会立即更新旧的分片,然后更改才会在所有权转移前复制到新的分片上
22. 我怎么查看 Mongo 正在使用的链接?
代码语言:javascript复制db._adminCommand("connPoolStats");
23mongodb的结构介绍
代码语言:javascript复制数据库中存储的对象设计bson,一种类似json的二进制文件,由键值对组成
24 数据库的整体结构
代码语言:javascript复制键值对–》文档–》集合–》数据库