mongodb资料学习

针对MongoDB的一些常用操作的公共类 分享地址  http://www.open-open.com/lib/view/open1325153696014.html

推荐三个学习mongodb的三个地方:《MongoDB权威指南》、《MongoDB管理与开发精要》、NoSQL FANS。

 

1、MySQL的数据存储结构

MySQL的每个数据库都对应存放在一个与数据库同名的文件夹中,MySQL数据库文件包括MySQL所建数据库文件和MySQL所用存储引擎创建的数据库文件。

MySQL如果使用MyISAM存储引擎,数据库文件类型就包括.frm、.MYD、.MYI

MySQL如果使用InnoDB存储引擎,数据库文件类型就包括.frm、ibdata1、.ibd

2、MongoDB的数据存储结构

MongoDB对国内用户来说比较新, 它就像是一个黑盒子,但是如果对于它内部的数据存储了解多一些的话,那么将会很快的理解和驾驭MongoDB,让它发挥它更大的作用。

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

  1. [root@localhost db]# ll /data/db/  
  2. 总计 196844  
  3. -rw------- 1 root root 16777216 04-15 16:33 admin.0  
  4. -rw------- 1 root root 33554432 04-15 16:33 admin.1  
  5. -rw------- 1 root root 16777216 04-15 16:33 admin.ns  
  6. -rw------- 1 root root 16777216 04-21 17:30 foo.0  
  7. -rw------- 1 root root 33554432 04-21 17:30 foo.1  
  8. -rw------- 1 root root 67108864 04-21 17:30 foo.2  
  9. -rw------- 1 root root 16777216 04-21 17:30 foo.ns  
  10. -rwxr-xr-x 1 root root 6 04-21 17:16 mongod.lock  
  11. -rw------- 1 root root 16777216 04-15 16:30 test.0  
  12. -rw------- 1 root root 33554432 04-15 16:30 test.1  
  13. -rw------- 1 root root 16777216 04-15 16:30 test.ns  
  14. drwxr-xr-x 2 root root 4096 04-21 17:30 _tmp  
  15. [root@localhost db]# 

 

 

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

 

3MongoDB的索引方式和传统的关系数据库一样,同样,正确的使用索引可以提高查询的速度,在MongoDB中索引可以通过调用hint()函数强制使用。

另外,MongoDB还支持存储函数过程,通过将函数保存在数据库中,使得在操作数据库的时候减小工作量以及网络IO。并且MongoDB可以通过命令行的操作方式,在mongo命令后面直接指定一个.js文件,即可直接返回在mongo中的操作结果。

 

 

 

你可能感兴趣的:(mongodb)