使用回形针或使用数据库保存图像更好地保存文件夹中的图像

时间:2013-08-23 06:31:17

标签: mysql ruby-on-rails paperclip

我心中有一个问题,就是最好使用blob,二进制等数据类型直接将数据保存在数据库中,或者通过维护文件夹结构来保存paperclip存储图像的方式,只保留数据库中的路径是标准的

2 个答案:

答案 0 :(得分:1)

将图片存储在数据库中有助于保持数据同步(如果手动更改文件夹名称,该怎么办?)。然后它可以节省你为记住在数据库本身之外备份数据的小小努力。 另一方面,从数据库中检索图像比从文件系统中检索图像要慢得多,而我似乎记得的数据库存储空间在Web服务器上更昂贵。

说,这只是一个选择问题。如果您决定使用数据库,可以使用gem来帮助您执行“paperclip_database”。

答案 1 :(得分:0)

有一些优点和缺点。

<强>优点

  • 易于保护参照完整性。保存在DB中的图像(路径)与保存在文件系统中的实际图像之间没有差异。

  • 数据库备份还包含图像。但是考虑到你必须备份应用程序数据。 (所以这不是一个好的论据)

  • 更轻松的权利管理

<强>缺点

  • 性能问题。必须从数据库加载每个图像。图像越多,这个论点应该得到的权重越大。

  • 浏览器缓存/检查图像是否已更改(If-modified-Since)不再工作。 (但你可以自己实施检查)

(没有完整清单)

我的结论

在流量和图像较少的小型网站上,可以将图像存储在数据库中。在较大的网站上,我不会这样做。