MongoDB

一: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。这样的机制有利于防止较小的数据库浪费过多的磁盘空间,同时又能保证较大的数据库有相应的预留空间使用

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序架道

13个速度与激情般的开源中件间

本文整理了阿里13个开源中件间产品的架构及功能介绍,结合阿里中间件团队的访谈及分享,涵盖了消息中间件、服务框架、数据层、应用服务器和大规模分布式稳定性平台等等。...

15930
来自专栏运维经验分享

zabbix清空历史记录

-----------------------------------------------------------------------

8120
来自专栏BanzClub

MySQL的组件及InnoDB存储引擎

在《MySQL的体系结构》一文中,说互联网应用的数据是数据库的数据,这种是说法不够严谨的,其实对于网站来说所有的信息都可以看成是数据,包括图片、文本、文档、音视...

12520
来自专栏AustinDatabases

MYSQL 无法启动故障一例, 以及MYSQL 参数规范化配置问题

事情是这样的,历史原因之前有一些MYSQL的服务器我是不清楚的,后期工作忙,也没有时间,并且这些服务器也没出过问题,最近开始规整这些MYSQL,偶然发现一台服务...

14030
来自专栏AustinDatabases

MYSQL Xtrabackup 做备份的时候你忘了点什么吗?

众所周知Xtrabackup 是mysql 中重要的备份工具,而数据库的备份中,尤其大内存的 MYSQL 备份中,都有一个问题的存在就是 innodb_buff...

9240
来自专栏「3306 Pai」社区

SQL优化大神玩转MySQL函数系列(一)

比如: 20001元 需要 变成 20000元 ,20015 变成 20010 这样

10810
来自专栏Java架构沉思录

锁住余额,为何还会更新异常?

现有一个交易系统,每次交易都会更新余额。出账扣减余额,入账增加余额。为了保证资金安全,余额发生扣减时,需要比较现有余额与扣减金额大小,若扣减金额大于现有余额,扣...

11920
来自专栏医学生物信息学

TCGA数据挖掘(一):TCGAbiolinks包介绍

肿瘤基因组图谱(TCGA)计划是由美国National Cancer Institute(NCI)和National Human Genome Research...

55050
来自专栏运维经验分享

zabbix清空历史记录

-----------------------------------------------------------------------

7740
来自专栏happyJared

Redis 扩展:缓存雪崩和缓存穿透问题解决方案

缓存同一时间大面积失效,所以,后面的请求都会落到数据库上,造成数据库短时间内承受大量的请求而崩掉。

14720

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励