2012-02-19 100 views
1

我最近接受了一次采访。在我的小型项目解释中,面试官问我“你在哪里存储用户上传的图像文件?”。我应该使用文件系统文件还是数据库来存储图像等文件?

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

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

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

我跟他争辩说,当数据具有原子性,一致性,隔离不担心,耐久性那么为什么要使用一个数据库.....

但他不停地说,当多个用户同时访问同一个文件,那么将使用数据库。他还说,许多组织都这样做,为什么数据库中存在blob类型,如果存储文件不是在数据库中完成的。

我点了点头,我不想进一步辩论。

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

+0

可能重复[DB中储存影像 - ?是啊,还是不是(http://stackoverflow.com/questions/3748/storing-images- in-db-yea-or-nay),请查看此页面上的“相关”链接。 – Mat 2012-02-19 08:15:04

+2

也许这是面试官测试你如何处理权力和冲突。的 – 2012-02-19 08:18:17

+0

可能重复[这是好存储图像数据库或文件系统?(http://stackoverflow.com/questions/877640/is-it-good-to-store-images-in-database-or-file - 系统) – 2012-02-19 08:27:03

回答

0

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

+0

感谢,接下来的时间,如果有的面试官提出这个问题,我会说 - “通过计算器人支持IM”。 – flnone 2012-02-19 15:39:18

0

我的问题是双重的

A)的备份 - 如果以dB为单位的图像,则数据库将得到更大的,如果在文件存储的图像,然后需要有两个备份方案 - 数据库和文件存储

B)检索 - 从数据库中获取blob/binary数据类型不像普通数据类型那么简单,而且一些ORM工具无法处理。

额外的因素是存储的成本,可以有DB服务器和慢,但非常大的人一个文件服务器上非常快的磁盘 - 获得投资回报。

我个人存储在文件服务器和链接的图像数据库的

+0

感谢下一次,如果一些采访者提出这个问题,我会说 - “我会支持stackoverflow的人”。 – flnone 2012-02-19 15:39:05

+0

面试官显然是无能的 - 让他在stackoverflow并让它出来:-) – 2012-02-19 22:50:57

相关问题