xunlei 发表于 2015-12-22 15:27:27

mongodb系列

  MongoDB 的逻辑结构是主要由:文档(document)、集合(collection)和数据库(database)这三部分组成的。
  MongoDB 的文档(document),相当于关系数据库中的一行记录
  集合(collection),相当于关系型数据库中的表的概念
  文档(document)、集合(collection)、数据库(database)的层次结构如下图:

  
  文档(document)            行(row)
  集合(collection)            表(table)
  数据库(database)           数据库(database)
   
  MongoDB 的默认数据目录是/var/lib/mongo,存储所有的MongoDB 的数据文件。
  ll -h /var/lib/mongo
  总计 5.0G
  -rw-r--r-- 1 mongod mongod 617M 02-10 00:30 diaglog.54c7318c
  -rw-r--r-- 1 mongod mongod  42M 02-11 19:26  diaglog.54d96212
  drwxr-xr-x 2 mongod mongod 4.0K 02-10 09:50 journal
  -rw------- 1 mongod mongod  64M 02-10 10:32  local.0
  -rw------- 1 mongod mongod 1.0G 02-11 18:14 local.1
  -rw------- 1 mongod mongod  16M 02-11 18:14  local.ns
  -rwxr-xr-x 1 mongod mongod    5 02-10 09:43  mongod.lock
  -rw------- 1 mongod mongod  16M 01-27 14:37   user.ns
  -rw------- 1 mongod mongod  64M 01-27 14:37   user.0
  -rw------- 1 mongod mongod 128M 01-27 14:35   user.1
  -rw------- 1 mongod mongod  64M 02-11 09:49   audit_log.0
  -rw------- 1 mongod mongod 128M 01-27 14:36   audit_log.1
  -rw------- 1 mongod mongod  16M 02-11 09:49   audit_log.ns
  ......
  在MongoDB内部,每个数据库都包含一个.ns 文件和一些数据文件,比如:user.ns,user.0,user.1,随着数据量不断增大,文件的数量也会不断地增多。
     每张表都对应一个命名空间,每个索引也有对应的命名空间。而这些命名空间的元数据都放在*.ns 文件中。
   
      MongoDB 内部有预分配空间的机制,预分配的文件都用0 进行填充,这样mongodb始终保持额外的空间和空余的数据文件。数据文件每次新生成的一个文件,它的大小都会是上一个数据文件大小的2倍。
     比如我的user.0是64M,user.1就是128M。
   
     
   
页: [1]
查看完整版本: mongodb系列