RT,图片是以文件系统存储好,还是以 GRIDFS 存储好?
普通文件系统到了后期会变的很难管理 但是目前来说相应速度: Nginx + 普通文件 4000+ req/s Nginx + GridFS 2000 req/s
普通文件系统优点是简单直接,缺点是当规模变大以后难于管理,难以扩展 使用 GridFS 的话优缺点正好对换,用起来相对复杂,但是当规模变大之后管理和扩展要容易得多 所以规模不太大的话或者产品还是验证阶段的话使用文件就 OK 了。
警惕!小文件最好不要使用 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 里面。