博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB实战(1)MongoDB安装与存储结构
阅读量:6417 次
发布时间:2019-06-23

本文共 1066 字,大约阅读时间需要 3 分钟。

一、linux平台的安装

wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.8.tgztar -zxvf mongodb-linux-x86_64-2.4.8.tgz#创建数据存放目录和日志目录/data/db/data/log/mongo.log#启动mongod服务进程 --fork后台运行/mongodb/bin/mongod --dbpath=/data/db --logpath=/data/log/mongo.log --fork

然后可以进入mongodb客户端进行测试了

/mongodb/bin/mongo

二、数据逻辑结构

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

多个文档组成一个集合collection相当于关系数据库的表。
多个集合collection逻辑上组织在一起就是数据库database。
一个MongoDB实例支持多个数据库database。
文档(document)、集合(collection)、数据库(database)的层次结构如下图:

对于习惯了关系型数据库的朋友们我将MongoDB与关系型数据库的逻辑结构进行了对比

以便让大家更深刻的理解MongoDB的逻辑结构

MongoDB的默认数据目录是/data/db它负责存储所有的MongoDB的数据文件。在MongoDB

内部每个数据库都包含一个.ns文件和一些数据文件而且这些数据文件会随着数据量的
增加而变得越来越多。所以如果系统中有一个叫做test的数据库那么构成test这个数据库
的文件就会由test.nstest.0test.1test.2等等组成具体如下:

数据库的每张表都对应一个命名空间每个索引也有对应的命名空间。这些命名空间的元数

据都集中在*.ns文件中。

MongoDB内部有预分配空间的机制每个预分配的文件都从*.0开始由于有了这个机

制,MongoDB始终保持额外的空间和空余的数据文件从而有效避免了由于数据暴增而带来
的磁盘压力过大的问题。
由于表中数据量的增加数据文件每新分配一次它的大小都会是上一个数据文件大小的2
倍所以我们看到test.1的大小是test.0的2倍。每个数据文件最大2G。这样的机制有利于防止较小的数据库浪费过多的磁盘空间同时又能保证较大的数据库有相应的预留空间使用。

当命名空间需要分配新的文件的时候都会先检查是否有已经删除的大小合适的盘区可以使用这样就回收空闲的磁盘空间了。

转载地址:http://bpsra.baihongyu.com/

你可能感兴趣的文章
看图轻松理解数据结构与算法系列(Radix树)
查看>>
写在专栏前-Java那些事儿
查看>>
亿万级访问量下的前端同构直出实践
查看>>
SpringSession系列-分布式 session 实现方案及 SpringSession 功能分析
查看>>
Sybase数据库安全
查看>>
令牌的故事(CVE-2015-0002)
查看>>
数据结构——二叉树的存储结构
查看>>
HTTP状态码简明宝典
查看>>
Java 基础 - 对java多态的理解
查看>>
iOS开发笔记(五):UIScrollView实现原理
查看>>
HTTPie 官方文档中文翻译版
查看>>
Bulk 异常引发的 Elasticsearch 内存泄漏
查看>>
Java 8 Stream
查看>>
Android6 0新应用权限管理机制详解
查看>>
leetCode 6 ZigZag Conversion
查看>>
作为一位Java架构师需要点亮的那些技能树
查看>>
一个行为标准Popup组件(vue), 强大的过度动画支持, 和定位支持
查看>>
移动端适配知识你到底知多少
查看>>
Java基础笔记16
查看>>
TiDB 在 G7 的实践和未来
查看>>