1、MongoDB是什么?
MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多 的节点,可以保证服务器性能。MongoDB旨在为WEB应用提供可扩展的高性能数据存储解决方案,将数据存 储为一个文档,数据结构由键值(key=>value)对组成。MongoDB文档类似于 JSON 对象。字段值可以包含 其他文档,数组及文档数组。
2、MongoDB有哪些特点?
(1)MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易;
(2)可以在MongoDB记录中设置任何属性的索引;
(3)可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性:
(4)如果负载的增加(需要更多的存储空间和更强的处理能力),它可以分布在计算机网络中的其他节点上 这就是所谓的分片;
(5)支持丰富的查询表达式,查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
3、MySQL与MongoDB之间最基本的差别是什么?
MySQL和MongoDB两者都是免费开源的数据库。MySQL和MongoDB有许多基本差别包括数据的表示查询、关 系、事务、schema的设计和定义、标准化、速度和性能。通过比较MySQL和MongoDB,实际上我们是在比较 关系型和非关系型数据库,即数据存储结构不同。
4、monogodb中的分片什么意思?
分片是将数据水平切分到不同的物理节点,当应用数据越来越大的时候,数据量也会越来越大。当数据量增长 时,单台机器有可能无法存储数据或可接受的读取写入吞吐量,利用分片技术可以添加更多的机器来应对数据 量增加以及读写操作的要求。
5、MongoDB中的命名空间是什么意思?
mongodb存储bson对象在丛集(collection)中,数据库名字和丛集名字以句点连结起来叫做名字空间,一 个集合命名空间又有多个数据域(extent),集合命名空间里存储着集合的元数据,比如集合名称,集合的第 一个数据域和最后一个数据域的位置等等。而一个数据域由若干条文档(document)组成,每个数据域都有一 个头部,记录着第一条文档和最后一条文档的为知,以及该数据域的一些元数据。extent之间,document之 间通过双向链表连接,索引的存储数据结构是B树,索引命名空间存储着对B树的根节点的指针。
6、在MongoDb中索引是什么?
索引用于高效的执行查询,没有索引的MongoDB将扫描整个集合中的所有文档,这种扫描效率很低,需要处理 大量的数据,索引是一种特殊的数据结构,将一小块数据集合保存为容易遍历的形式。索引能够存储某种特殊 字段或字段集的值,并按照索引指定的方式将字段值进行排序。
7、MongoDB成为最好NoSQL数据库的原因是什么?
以下特点使得MongoDB成为最好的NoSQL数据库:面向文件的;高性能;高可用性;易扩展性;丰富的查询语 言。
8、解释一下什么是MongoDB中的GridFS ?
为了存储和检索大文件,例如图像,视频文件和音频文件,使用GridFS。默认情况下,它使用两个文件 fs.files和fs.chunks来存储文件的元数据和块。
9、分析器在MongoDB中的作用是什么?
MongoDB中包括了一个可以显示数据库中每个操作性能特点的数据库分析器。通过这个分析器你可以找到比预 期慢的查询(或写操作);利用这一信息,比如,可以确定是否需要添加索引。
10、MongoDB更新操作会立刻 fsync 到磁盘?
不会,磁盘写操作默认是延迟执行的。写操作可能在两三秒(默认在 60 秒内)后到达磁盘。例如,如果一秒 内数据库收到一千个对一个对象递增的操作,仅刷新磁盘一次。(注意,尽管 fsync 选项在命令行和经过 getLastError_old 是有效的)




