我在这里找到了一个类似的问题:Storing images in DB: Yea or Nay,但给出的答案更多地针对那些期待数千甚至数百万图像的人,而我更关心的是小图像(JPEG可能高达150×150像素),而且小它们的数量:可能高达一两千.
对于这种情况,DB BLOB vs Filesystem有什么感受?客户端如何使用来自DB和文件系统的缓存映像?
如果存储在数据库中的BLOB是要走的路 – 我应该知道在哪里存储它们吗?由于我想我的大多数用户都不会上传图片,我是否应该在需要时创建一个user_pics表到(外部)加入常规用户表?
编辑:我正在重新打开这个问题,因为它与你链接的那两个不重复.这个问题具体是关于使用DB或FS来处理少量图像的优缺点.正如我上面所说,另一个问题是针对需要存储数千个大型图像的人.
解决方法
How do clients go with caching images from the DB vs from the filesystem?
对于数据库:在数据库中有一个last_modified字段.使用Last-Modified HTTP标头,以便客户端的浏览器可以正常缓存.当浏览器请求图像“如果更新”时,请务必发送相应的响应(无法回想起它的内容;某些HTTP请求标头).
If BLOBs stored in the DB are the way to go – is there anything I should know about where to store them? Since I imagine that a majority of my users won’t be uploading a picture,should I create a user_pics table to (outer) join to the regular users table when needed?
我会把BLOB和相关的元数据放在它自己的表中,它与你的用户表之间有某种关系.这样做可以更轻松地优化数据的表存储方法,使事情更加整洁,并为可扩展性留出空间(例如,一般的“文件”表).