我应该使用文件系统文件还是数据库来存储图像等文件?

时间:2012-02-19 08:12:16

标签: database image

我最近接受了一次采访。在我的迷你项目解释的背景下,采访者问我"你在哪里存储用户上传的图像文件?"。

我回答说我使用的是文件系统而不是数据库。我还补充说,这样做不会降低性能。

(任何人都可以查看这些图像,因此许多用户可能会访问图像)。

令我惊讶的是,他说当你的文件被许多人访问时,你应该使用数据库。

我和他争辩说,当数据不关心原子性,一致性,隔离性,持久性时,为什么要使用数据库......

但他一直说当多个用户访问同一个文件时,就会使用一个数据库。他还说许多组织也是这样做的 - 如果在数据库中没有存储文件,为什么数据库中会出现blob类型。

我向他点点头;我不想再进一步辩论了。

所以,现在我很困惑。他说的是真的吗?当有多个访问时,是否应该使用数据库来存储文件?很多组织都这样做吗? 如果是,请解释我为什么会这样。

2 个答案:

答案 0 :(得分:0)

据我了解,你应该在DB中存储文件路径以提高性能,但是在DB中存储图像数据绝对不同意见,这是完全错误的。通常数据库应该保持高效率,可靠性,所以不要让数据库文件太大,我相信我的概念绝对是真的。所以你的理解是正确的,为了在许多用户同时访问一个文件时提高性能,你必须使用其他缓存解决方案。

答案 1 :(得分:0)

对我来说问题是双重的

A)备份 - 如果db中的图像然后db会变得更大,如果filestore中的图像需要有两个备份方案--DB和filestore

B)检索 - 获取进出DB的blob /二进制数据类型并不像普通数据类型那样简单,而且有些ORM工具无法处理。

额外考虑因素是存储成本,数据库服务器上的磁盘速度非常快,文件服务器上速度较慢但速度要大得多 - 获得投资回报。

我个人将图像存储在文件服务器中并链接到数据库中