文章图片
1)你对NoSQL数据库了解什么? MongoDB是NoSQL数据库吗?说明。
当前, 互联网上充满了大数据, 大用户, 大复杂性等, 并且也日益复杂。 NoSQL解决了所有这些问题, 它不是传统的数据库管理系统, 甚至不是关系数据库管理系统(RDBMS)。 NoSQL代表” 不仅仅是SQL” 。 NoSQL是一种数据库, 可以处理和分类所有类型的非结构化, 混乱和复杂的数据。这只是思考数据库的一种新方法。
是。 MongoDB是NoSQL数据库。
2)MongoDB支持哪些不同的语言?
MonggoDB为C, C ++, C#, Java, Node.js, Perl, PHP, Python, Ruby, Scala, Go和Erlang提供官方驱动程序支持。
你可以将MongoDB与以上任何一种语言一起使用。还有其他一些社区支持的驱动程序, 但是上述驱动程序是由MongoDB正式提供的。
3)NoSQL数据库有哪些不同类型?举个例子。
【MongoDB面试题和答案全集解析】NoSQL数据库可分为4种基本类型:
- 键值存储NoSQL数据库
- 文档存储NoSQL数据库
- 列存储NoSQL数据库
- 图基NoSQL数据库
4)MongoDB是否比其他SQL数据库更好?如果是, 那怎么办?
MongoDB比其他SQL数据库更好, 因为它允许高度灵活和可扩展的文档结构。
例如:
- MongoDB中的一个数据文档可以具有五列, 而同一集合中的另一文档可以具有十列。
- 由于高效的索引和存储技术, MongoDB数据库比SQL数据库更快。
MongoDB是面向文档的DBMS
6)MongoDB和MySQL有什么区别?
尽管MongoDB和MySQL都是免费和开放源数据库, 但它们在数据表示, 关系, 事务, 查询数据, 模式设计和定义, 性能速度, 规范化等等方面仍有很多差异。将MySQL与MongoDB进行比较就像在关系数据库和非关系数据库之间进行比较。
7)为什么MongoDB被称为最佳NoSQL数据库?
MongoDb是最好的NoSQL数据库, 因为它是:
面向文档
丰富的查询语言
高性能
高度可用
轻松扩展
8)MongoDB是否支持主键, 外键关系?
否。默认情况下, MongoDB不支持主键-外键关系。
9)你可以在MongoDB中实现主键-外键关系吗?
我们可以通过将一个文档嵌入另一个文档来实现主键-外键关系。例如:地址文档可以嵌入客户文档中。
10)MongoDB是否需要大量RAM?
不需要。运行MongoDB不需要大量RAM。它甚至可以在少量RAM上运行, 因为它可以根据进程要求动态分配和取消分配RAM。
11)解释MongoDB中ObjectID的结构。
ObjectID是12字节的BSON类型。这些是:
- 4字节值代表秒
- 3字节机器标识符
- 2字节进程ID
- 3字节计数器
是。
13)MongoDB中的索引是什么?
在MondoDB中, 索引用于有效地执行查询。没有索引, MongoDB必须执行集合扫描, 即扫描集合中的每个文档, 以选择与查询语句匹配的那些文档。如果查询存在适当的索引, 则MongoDB可以使用该索引来限制它必须检查的文档数。
14)默认情况下, MongoDB为每个集合创建哪个索引?
默认情况下, MongoDB为每个集合创建the_id集合。
15)MongoDB中的命名空间是什么?
命名空间是数据库名称和集合名称的串联。集合, MongoDB在其中存储BSON对象。
16)日记功能可以用于执行安全的热备份吗?
是。
17)为什么Profiler在MongoDB中使用?
MongoDB使用数据库探查器对数据库执行每个操作的特征。你可以使用探查器来查找查询和进行写操作
18)如果删除对象属性, 是否从数据库中删除该对象属性?
是的, 是的。删除该属性, 然后重新保存()该对象。
19)MongoDB用哪种语言编写?
MongoDB是用C ++编写和实现的。
20)MongoDB是否需要大量的随机存取存储器(RAM)?
不能。MongoDB可以在较小的RAM可用空间上运行。
21)你可以在MongoDB中使用哪种语言?
MongoDB客户端驱动程序支持所有流行的编程语言, 因此没有语言问题, 你可以使用所需的任何语言。
22)MongoDB数据库是否具有用于存储记录的表?
否。MongoDB代替表, 而是使用” 集合” 来存储数据。
23)MongoDB数据库是否具有架构?
是。 MongoDB数据库具有动态架构。无需定义用于创建集合的结构。
24)在MongoDB中配置缓存大小的方法是什么?
MongoDB的缓存不可配置。实际上, MongoDb通过内存映射文件自动使用系统上的所有可用空间。
25)如何在MongoDB中进行事务/锁定?
MongoDB不会在回滚中使用传统的锁定或复杂的事务。 MongoDB设计为轻量级, 快速且可预测其性能。它使事务支持变得简单, 从而提高了性能。
26)为什么不首选32位版本的MongoDB?
由于MongoDB使用内存映射文件, 因此当你运行32位版本的MongoDB时, 服务器的总存储大小为2 GB。但是, 当你运行64位版本的MongoDB构建时, 这实际上提供了无限的存储大小。因此64位比32位更可取。
27)是否可以删除moveChunk目录中的旧文件?
是的, 操作完成后可以删除这些文件, 因为在常规分片平衡操作期间将这些文件作为备份。这是一个手动清理过程, 必须释放空间。
28)如果分片下降或变慢并且你进行查询, 该怎么办?
如果碎片断开, 你甚至进行查询, 那么除非你设置了部分查询选项, 否则查询将返回错误。但是, 如果碎片变慢, 则Mongos将等待它们直到响应。
29)解释MongoDB中涵盖的查询。
如果满足以下两个条件, 则该查询称为涵盖查询:
- 查询中使用的字段是查询中使用的索引的一部分。
- 结果中返回的字段在同一索引中。
涵盖查询使索引的存储在RAM中或顺序位于磁盘上, 从而使查询的执行速度更快。它使查询的执行速度更快。
覆盖查询使字段本身被索引覆盖, MongoDB可以匹配查询条件, 并使用相同索引返回结果字段, 而无需查看文档内部。
31)MongoDB中的分片是什么?
在MongoDB中, 分片是在多台计算机之间存储数据记录的过程。这是一种MongoDB方法, 可以满足数据增长的需求。它在数据库或搜索引擎中创建数据的水平分区。每个分区称为分片或数据库分片。
32)MongoDB中设置了什么副本?
可以将副本指定为托管相同数据集的一组mongo实例。在副本集中, 一个节点是主节点, 另一个是辅助节点。所有数据都从主节点复制到辅助节点。
33)MongoDB中设置的主要和辅助副本是什么?
在MongoDB中, 主节点是可以接受写入的节点。这些也称为主节点。 MongoDB中的复制是单个主复制, 因此一次只能有一个节点可以接受写操作。
辅助节点称为从节点。这些是从主节点复制的只读节点。
34)默认情况下, 哪些副本集用于写入数据?
默认情况下, MongoDB仅将数据写入主副本集。
35)MongoDB中的CRUD是什么?
MongoDB支持以下CRUD操作:
- 创建
- 读
- 更新
- 删除
MongoDB使用BSON表示文档结构。
37)从MongoDB中的数据库中删除文档时会发生什么? MongoDB是否将其从磁盘上删除?
是。如果你从数据库中删除文档, MongoDB也会从磁盘中删除它。
38)为什么MongoDB数据文件很大?
MongoDB不会跟随文件系统碎片, 而是在设置服务器时预先分配数据文件以保留空间。这就是MongoDB数据文件很大的原因。
39)MongoDB中的存储引擎是什么?
存储引擎是数据库的一部分, 用于管理如何在磁盘上存储数据。
例如:一个存储引擎可能为读取大量工作负载提供更好的性能, 而另一个可能支持更高吞吐量的写操作。
40)MongoDB使用哪些存储引擎?
MMAPv1和WiredTiger是MongoDB使用的两个存储引擎。
41)MongoDB中探查器的用法是什么?
数据库分析器用于收集有关正在运行的mongod实例上的MongoDB写操作, 游标, 数据库命令的数据。你可以基于每个数据库或每个实例启用分析。
数据库探查器会将其收集的所有数据写入系统。个人档案集合, 这是一个上限集合。
42)是否可以在MongoDB中为MMAPv1配置缓存大小?
不能。由于MMAPv1不允许配置缓存大小, 因此无法为MMAPv1配置缓存大小。
43)如何在MongoDB中为WiredTiger配置缓存大小?
对于WiredTiger存储引擎, 你可以指定WiredTiger将用于所有数据的缓存的最大大小。可以使用storage.wiredTiger.engineConfig.cacheSizeGB选项来完成。
44)MongoDB如何提供并发性?
MongoDB使用读写器锁进行并发。读取器-写入器锁允许并发的读取器共享访问资源(例如数据库或集合)的权限, 但可以独占访问单个写入操作。
45)MongoDB和Redis数据库有什么区别?
MongoDB和Redis之间的区别:
- Redis比MongoDB快。
- Redis具有键值存储, 而MongoDB具有文档类型存储。
- Redis很难编码, 但是MongoDB很容易。
46)MongoDB和CouchDB有什么区别?
MongoDB和CouchDB之间的区别:
- MongoDB比CouchDB快, 而CouchDB比MongoDB安全。
- 触发器在MongoDB中不可用, 而触发器在CouchDB中可用。
- MongoDB将JSON数据序列化为BSON, 而CouchDB不以JSON格式存储数据。
47)MongoDB和Cassandra有什么区别?
MongoDB和Cassandra之间的区别:
- MongoDB是跨平台的面向文档的数据库系统, 而Cassandra是高性能的分布式数据库系统。
- MongoDB用C ++编写, 而Cassandra用Java编写。
- MongoDB在发生故障时易于管理, 而Cassandra提供高可用性而没有单点故障。
48)是否需要在MongoDB中创建数据库命令?
你不需要在MongoDB中手动创建数据库, 因为当你第一次将值保存到定义的集合中时, 数据库会自动创建。
欲了解更多信息, 请点击此处
Java OOP面试问题 |
Java字符串和异常问题 |
JDBC面试问题 |
JSP面试问题 |
休眠面试问题 |
SQL面试题 |
Android面试题 |
MySQL面试问题 |
Java多线程问题
Java Collection面试题
Servlet面试问题
春季面试问题
PL / SQL面试问题
Oracle面试问题
SQL Server面试问题
推荐阅读
- 史上最全的MySQL面试题和答案大汇总
- Java面试(JOGL面试题和答案合集)
- jBPM面试题和答案详细图解
- Java调试(JDB面试题和答案合集)
- Jenkins面试题和答案合集详解
- 数据库面试(DBMS面试题和答案合集)
- Java面试(GWT面试题和答案合集)
- uniapp开发指南
- Electron中常用api事件-app常用事件和webContents常用事件