所以我正在使用一个将图像存储在数据库中的应用程序.你对此有何看法?我更像是一种在文件系统中存储位置的类型,而不是直接将它存储在数据库中.
您认为利弊是什么?
在Web应用程序的上下文中,我的老板总是说在数据库中引用了一个图像,而不是图像本身.我倾向于同意在数据库中存储网址与图像本身是一个好主意,但在我现在工作的地方,我们在数据库中存储了大量图像.
我能想到的唯一原因可能是它更安全吗?你不希望有人直接链接到网址吗?但如果是这种情况,您可以随时让网站/服务器处理图像,例如asp.net中的处理程序,以便用户需要进行身份验证才能查看图像.我也在考虑从数据库中提取图像会损害性能.将图像存储在数据库中可能是一个好/不太好的想法的任何其他原因?
完全重复: 用户映像:数据库还是文件系统存储?
完全重复: 在数据库中存储图像:是或不是?
完全重复: 我应该将我的图像存储在数据库还是文件夹中?
确切重复: 您是否将二进制数据存储在数据库或文件夹中?
完全重复:将 图片存储为Web应用程序的文件或数据库?
确切重复: 存储少量图像:blob还是fs?
精确复制: 将图像存储在文件系统或数据库中?
我必须为以下任务找到设计决策:
我有一个SQL Server数据库,它包含一个订单表.用户可以通过从网页上传的简单文件上传PDF文档并将其分配给订单.每个订单不超过一个文档(可能没有文档,从不超过一个).为此,用户打开网页,输入订单号,显示订单并单击上传按钮.所以我知道上传的文件属于哪个顺序.
现在我正在考虑将两种文件存储在Web服务器上的选项:
1)通过varbinary(MAX)列扩展我的订单表,并将PDF文档直接存储到该二进制字段中.
2)将PDF文件保存在磁盘上的特定文件夹中,并为其指定与订单相关的唯一名称(例如,我的订单号是数据库中的主键,或者是我可以存储在其他列中的GUID).订购表).也许我必须将文件存储在子文件夹中,每月一个,并将子文件夹名称存储到数据库的订单行中,以避免在一个文件夹中获取过多的文件.
存储PDF文件后,可以在输入相关订单号后通过浏览器下载和查看.
我倾向于选项(1),因为数据管理似乎更容易让我在一个数据库中拥有所有相关数据.但是我有点担心随着时间的推移我会遇到性能问题,因为我的数据库大小比解决方案(2)增长得快得多.大约90%甚至95%的数据库总大小仅由那些存储的PDF文件组成.
以下是一些其他信息:
(我知道在使用上述数字大约2年后,我将达到SQL Server Express版本的4GB限制.但我们可以忽略这一点,从数据库中删除旧数据或升级到完整许可证将是可能的选择.)
我的问题是:选项的Pro和Contra是什么,你会推荐什么?也许某人有类似的任务,可以报告他的经历.
提前谢谢你的回复!
有关:
可能重复:
在DB中存储图像 - 是或否?
多年来,我被告知不要将图像存储在数据库中,也不要将任何大型BLOB存储在数据库中.虽然我可以理解为什么数据库没有/没有效率,我从来没有理解为什么他们不能.如果我可以将文件放在某处并引用它,为什么数据库引擎也不能这样做.我很高兴Damien Katz在最近的Stack Overflow播客中提到它,Joel Spolsky和Jeff Atwood,至少默默地同意了.
我一直在阅读Microsoft SQL Server 2008应该能够有效处理BLOB的提示,这是真的吗?如果是这样,有什么阻止我们在那里存储图像并摆脱一个问题?我能想到的一件事是,虽然图像可以很快地由静态Web服务器提供,如果它是某个文件,当它在数据库中时,它必须从数据库传输到Web服务器应用程序(这可能比静态Web服务器)然后它被服务.不应该缓存帮助/解决最后一个问题?
是否可以在MYSQL数据库中存储图像文件(.jpg,.gif等)?或者只是在系统中存储并获取图像的参考路径?
我正在使用ASP.NET C#,所以如果你有示例代码,那么如果你可以分享它会很棒.
我无法决定应该遵循哪一个.你们能提出一些意见吗?我应该将我的图像存储在文件系统还是数据库中?(我想阻止别人偷我的照片)
当您回答这个问题时,请包括安全性,性能等的比较.
谢谢.
完全重复: 用户映像:数据库还是文件系统存储?
完全重复: 在数据库中存储图像:是或不是?
完全重复: 我应该将我的图像存储在数据库还是文件夹中?
确切重复: 您是否将二进制数据存储在数据库或文件夹中?
完全重复:将 图片存储为Web应用程序的文件或数据库?
确切重复: 存储少量图像:blob还是fs?
精确复制: 将图像存储在文件系统或数据库中?
背景资料:
该应用程序是使用 SQLite 作为后端的 .NET 4/C# Windows 窗体。只有一个用户使用该数据库,并且绝不通过网络进行交互。
我的软件需要保存与项目记录关联的图像。我应该将图像作为二进制信息保存在数据库本身中吗?或者我应该将图片的路径保存在文件系统上并使用它来检索它。
另存为路径时我担心的是有人可能会更改图片的文件名,这基本上会破坏我的应用程序的使用。
有人可以给一些建议吗?通过网络互动。
可能的重复:
在数据库中存储图像 - 是还是否?
非常简单,我正在托管一个用户可以上传图片的网站,并且我有一个可以正常工作的 .net 文件上传控件。我只是想知道应该使用什么方法将它们存储在服务器上。
我相信这里真正的问题是..我想要 IIS 还是 Sql Server 2008 R2 上的负载?
关于我应该使用哪种方法的普遍共识是什么?为什么?谢谢!
database ×5
image ×4
asp.net ×3
blob ×3
c# ×3
.net ×1
arrays ×1
binary-data ×1
file-upload ×1
filesystems ×1
mysql ×1
path ×1
performance ×1
sql-server ×1
sqlite ×1
storage ×1
theory ×1