Mongodb体系结构

Posted by 撒得一地 on 2016年3月7日 in Mongodb教程

MongoDB是一个可移植的数据库,它在流行的每一个平台上都可以使用,即所谓的跨平台特性。在不同的操作系统上虽然略有差别,但是从整体构架上来看,MongoDB在不同的平台上是一样的,如数据逻辑结构和数据的存储等等。

一个运行着的MongoDB数据库就可以看成是一个MongoDBServer,该Server由实例和数据库组成,在一般的情况下一个MongoDBServer机器上包含一个实例和多个与之对应的数据库,但是在特殊情况下,如硬件投入成本有限或特殊的应用需求,也允许一个Server机器上可以有多个实例和多个数据库。

MongoDB中一系列物理文件(数据文件,日志文件等)的集合或与之对应的逻辑结构(集合,文档等)被称为数据库,简单的说,就是数据库是由一系列与磁盘有关系的物理文件的组成。 

数据逻辑结构

MongoDB的逻辑结构是一种层次结构。主要由:文档(document)、集合(collection)、数据库(database)这三部分组成的。逻辑结构是面向用户的,用户使用MongoDB开发应用程序使用的就是逻辑结构。

MongoDB的文档(document),相当于关系数据库中的一行记录。

多个文档组成一个集合(collection),相当于关系数据库的表。

多个集合(collection),逻辑上组织在一起,就是数据库(database)。

一个MongoDB实例支持多个数据库(database)。

MongoDB与关系型数据库的逻辑结构进行了对比:

Mongodb          关系型数据库

文档(document)     行(row)

集合(collection)   表(table)

数据库(database)   数据库(database)

文档、集合、数据库的层次结构图如下:

文档、集合和数据库的层次结构图

数据存储结构

MongoDB的默认数据目录是/data/db,它负责存储所有的MongoDB的数据文件。在MongoDB内部,每个数据库都包含一个.ns文件和一些数据文件,而且这些数据文件会随着数据量的增加而变得越来越多。所以如果系统中有一个叫做foo的数据库,那么构成foo这个数据库的文件就会由foo.ns,foo.0,foo.1,foo.2等等组成。

MongoDB内部有预分配空间的机制,每个预分配的文件都用0进行填充,由于有了这个机制,MongoDB始终保持额外的空间和空余的数据文件,从而有效避免了由于数据暴增而带来的磁盘压力过大的问题。

由于表中数据量的增加,数据文件每新分配一次,它的大小都会是上一个数据文件大小的2倍,每个数据文件最大2G。这样的机制有利于防止较小的数据库浪费过多的磁盘空间,同时又能保证较大的数据库有相应的预留空间使用。

数据库的每张表都对应一个命名空间,每个索引也有对应的命名空间。这些命名空间的元数据都集中在*.ns文件中。

上一篇:

下一篇:

相关推荐

网站地图|XML地图

Copyright © 2015-2024 技术拉近你我! All rights reserved.
闽ICP备15015576号-1 版权所有©psz.