存储上载的图像,SQL数据库或磁盘文件系统的最佳位置是什么?

我正在编写一个允许用户将图像上传到服务器的应用程序。我希望每天约20张全jpeg图像,并且可能未编辑/调整大小。(这是另一个问题,如何在存储前在服务器端调整图像大小。也许有人可以在注释中删除.NET资源)。我现在想知道存储上传图像的最佳位置是什么。

  • 将图像作为文件存储在文件系统中,并在具有该图像确切路径的表中创建记录。

  • 或者,使用数据库服务器的“图像”或“二进制数据”数据类型将图像本身存储在表中。

我看到了两者的优点和缺点。我喜欢a),因为我可以轻松地重定位文件,而只需更改表条目。另一方面,我不喜欢将业务数据存储在Web服务器上,并且我真的不希望将Web服务器连接到保存业务数据的任何其他数据源(出于安全原因),我喜欢b),因为所有信息都是在一个地方,并且可以通过查询轻松访问。另一方面,数据库很快就会变得很大。将数据外包可能会更加困难。


Helenr
浏览 676回答 3
3回答

郎朗坤

我通常将文件存储在文件系统上,因为这是它的用途,尽管有例外。对于文件,文件系统(通常)是最灵活,性能最高的解决方案。将文件存储在数据库中存在一些问题-文件通常比平均行大得多-包含许多大文件的结果集将占用大量内存。另外,如果您使用采用表锁进行写操作的存储引擎(例如,ISAM),则文件表可能经常被锁定,具体取决于存储在其中的文件的大小/速率。关于安全性-我通常将文件存储在文档根目录之外的目录中(无法通过http请求访问),并通过脚本进行服务,该脚本首先检查正确的授权。
打开App,查看更多内容
随时随地看视频慕课网APP