Homeland 图片是以文件系统存储好,还是以 GRIDFS 存储好?

kevin · 2011年11月14日 · 最后由 Tony612 回复于 2012年09月16日 · 22540 次阅读

RT,图片是以文件系统存储好,还是以 GRIDFS 存储好?

普通文件系统到了后期会变的很难管理 但是目前来说相应速度: Nginx + 普通文件 4000+ req/s Nginx + GridFS 2000 req/s

有没有比较好的方案?

GRIDFS 没用过 , 一直用的 文件系统 存储!!!

普通文件系统优点是简单直接,缺点是当规模变大以后难于管理,难以扩展 使用 GridFS 的话优缺点正好对换,用起来相对复杂,但是当规模变大之后管理和扩展要容易得多 所以规模不太大的话或者产品还是验证阶段的话使用文件就 OK 了。

#4 楼 @vincent 在我经历的数个项目中,staging / production 环境都优先考虑用 S3 作存储。相对于 GridFS,如果不考虑国情的话,我觉得 S3 更加容易使用。

#5 楼 @lgn21st 呵呵,国外的产品就用 S3,靠谱。

国内可以试试 upyun.com

警惕!小文件最好不要使用 GridFs 来存储。GridFs 是用来存放大数据文件的,如果一个文件太大不好加载,那么就存放到 GridFs 里面去,GridFs 会将你的文件切分成多个 chunks,每个 chunk 默认 256K。GridFs 里面查询是 double 的,一次去匹配 metadata,一次去匹配内容。所以小文件存进去比如 4k 的文件,还是会查两次的。

GridFS uses two collections to store data: files contains the object metadata chunks contains the binary chunks with some additional accounting information

你可以考虑小文件存储在文件系统里面,加载读取慢的大文件存储在 GridFs 里面。

#8 楼 @rockliu 小文件最好不要使用 GridFs 来存储原因是什么?

#8 楼 @rockliu #1 楼 @huacnlee GridFS 的最前端弄一个 Nginx Cache 或者 Vanish/Squid ,速度应该不太需要担心的, 空间换取速度!

#9 楼 @huacnlee 我记得以前有个 mongo 的介绍 ppt,说了这个事情,也有性能比较的。

#9 楼 @huacnlee 小文件做两次查询,是非常不划算的,GridFs 是做了两次查询的(一次查 metadata,一次 content) GridFs 的官方定义: GridFS is a storage specification for large objects in MongoDB.

#10 楼 @vincent 这个我知道, Ruby China 现在就是这么干的, GridFS 试试来方便管理零碎的文件

弄过一次,觉得部署太麻烦。小数据量用文件,以后大数据量去找 S3 了。

#15 楼 @Rei S3 要钱吧,请教下,有没有免费的,不用翻墙的存储空间??

#16 楼 @jinleileiking 这个……一分钱一分货的,很久没留意免费的空间了

为什么小文件不使用 mfs 呢?mfs 很适合小文件使用。

#12 楼 @rockliu Got it .. 学习了。。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号