国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 数据库 > 数据库应用 > 【MongoDB】MongoDB数据库之海量存储机制

【MongoDB】MongoDB数据库之海量存储机制

来源:程序员人生   发布时间:2014-12-09 08:35:20 阅读次数:4721次

GridFS是1种将大型文件存储在Mongodb数据库中的文件规范。

1、如何实现海量存储

由于Mongodb中的bson对象大小是限制的,所以gridfs规范提供了1种透明的机制,可以将1个大文件分成多个较小的文件。这样的机制允许有效地保存大文件的对象,特别是哪些巨大的文件,比如视频,高清图片;该规范指定了1个将文件分块的标准,每一个文件都在集合对象中保存1个元数据对象,1个或多个块对象可被组合在1个chunk块集合中。mongodb中主要是利用mongofiles工具。

Grifs使用两个表来存储数据:

Files(包括元数据对象)

chunks(抱哈你1些相干信息的2进制块)

为了使多个gridfs命名为1个单1的数据库,文件和块都有1个前缀。默许情况下,前缀是fs.所以任何默许的gridfs存储将包括命名空间fs.files和fs.chunks。

2、命令行工具

mongofiles是从命令行操作gridfs的1种工具,例如将“testfile”这个文件存到数据库里面,可以履行以下操作。首先我们整体认识1下mongofiles:


实例寄存文件到数据库



db.fs.files.find()参数说明:

filename:贮存文件的名称;
chunksize:chunks的大小
uploaddate:入库时间
md5:文件的md5码
length:文件的大小(单位:字节)

db.fs.chunks.find()参数说明:
n:代表chunks的序号,此序号是从0开始;
data字段就是实际存储的数据

数据库取出来数据:
D:Program Filesmongodbin>mongofiles get test.txt connected to: 127.0.0.1 done write to: test.txt

gridfs文件也能够创建索引,1个块就能够利用它file_id和n的值来进行检索。


db.fs.files.find()参数说明:
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生