如何在服务器上正确存储图像并在数据库中引用它们?

问题描述 投票:1回答:2

我正在开发一个需要存储大量图片的Web应用程序。我尝试将它们以blob格式存储在数据库中,但我很快发现,从数据库中检索图片需要太长时间。

我在一些不同的论坛上看到,可以将图片存储在实时服务器上以及我的Web应用程序中,并且这个选项在性能等方面要优越得多。

所以我的问题是;如果我将这些图片存储在实时服务器上,那么我将如何在SQL Server数据库中引用这些图片,其次,如何创建“模拟数据”来测试我的存储过程?

我意识到这是我的第一篇文章,对于大多数有经验的程序员来说,它可能是非常基础的。

我尝试在这个网站(和其他人)上阅读,但是,我一直无法找到答案。

最好的祝福

布拉德比特

sql-server image stored-procedures
2个回答
2
投票

通常,您将文件存储在服务器文件系统(或某些可访问的网络文件夹)中,您的数据库应存储它们的相对路径或完整路径。

这样,如果用户请求id为250的文件,您将从数据库“Document”(或其他)表中检索该条目,并获取其完整路径。


0
投票

考虑到(大多数)文件系统被优化以分层访问数据(即在文件夹中),并且如果你有一个大文件夹,例如百万个文件,则表现不佳。 Here is more on NTFS performance

要绕过瓶颈,请创建一个n级文件夹结构,其中每个级别的名称都是一个数字。例如XXX / YYY / ZZZ / qqq.jpg。

其中xxx,yyy,zzz和qqq是数字000-999。这应该足以存储1 000 000 000 000个文件,并将文件/文件夹的数量保持在一个限制的文件夹中。

在您的数据库中创建一个表(file_id,level1,level2,level3,level4)来存储每个文件所在的位置。创建一个获取文件的过程,找出放置它的位置并在db中写入位置。

© www.soinside.com 2019 - 2024. All rights reserved.