一:MongoDB简介
? ? ? ?MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。属于NoSQL(非关系型数据库)。
NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。
? ? ? ?MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
二:安装
linux平台
? ? ? ?1.下载MongoDB
#curl -O http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.8.1.tgz
2.设置MongoDB程序存放目录
将其解压到/Apps,再重命名mongo,路径为/Apps/mongo
3.设置数据文件存放目录
? ? 建立/data/db的目录,mkdir? -p /data/db
4.启动MongoDB服务
? ?# /Apps/mongo/bin/mongod --dbpath=/data/db
5.设置开机自启
??先创建/Apps/mongo/logs/mongodb.log 文件,用于存储 MongoDB 的日志文件
vi /etc/rc.local, 使用 vi 编辑器打开配置文件,并在其中加入下面一行代码
? ? ? ? ?/Apps/mongo/bin/mongod --dbpath=/data/db --logpath=/Apps/mongo/logs/mongodb.log
6.客户端连接验证
? ?# /Apps/mongo/bin/mongo
7.查看MongoDB日志
查看/Apps/mongo/logs/mongodb.log 文件?
三:体系结构
3.1数据逻辑结构
MongoDB 的逻辑结构是一种层次结构。主要由:文档(document)、集合(collection)、数据库(database)这三部分组成的。逻辑结构是面向用户的,用户使用?MongoDB?开发应用程序使用的就是逻辑结构。?
数据库类似于mysql的数据库,集合collection类似于mysql的表,文档document类似于表中一行记录。
3.2数据存储结构
MongoDB 内部有预分配空间的机制,每个预分配的文件都用 0 进行填充,由于有了这个机制, MongoDB?始终保持额外的空间和空余的数据文件,从而有效避免了由于数据暴增而带来的磁盘压力过大的问题。
由于表中数据量的增加,数据文件每新分配一次,它的大小都会是上一个数据文件大小的 2倍,每个数据文件最大?2G。这样的机制有利于防止较小的数据库浪费过多的磁盘空间,同时又能保证较大的数据库有相应的预留空间使用?
?