谁能告诉在 SQL 中存储图像的最佳方法是啥

Posted

技术标签:

【中文标题】谁能告诉在 SQL 中存储图像的最佳方法是啥【英文标题】:Can anyone tell what is the best way to store images in SQL谁能告诉在 SQL 中存储图像的最佳方法是什么 【发布时间】:2010-08-19 05:15:31 【问题描述】:

我想通过将图像转换为二进制对象来将图像存储在数据库中,或者我会将它们存储到临时文件夹中并将路径保存在我的数据库中。但是我无法进行编程,所以任何人都可以给我一个示例代码来使用 Asp.net 将图像保存到 sql 数据库中。

【问题讨论】:

问many times before。一个例子:How to Store and Retrieve Images Using SQL Server (Server Management Studio) 【参考方案1】:

这里有一些链接:

http://www.beansoftware.com/ASP.NET-Tutorials/Binary-Files-To-Database.aspx

http://www.beansoftware.com/asp.net-tutorials/images-database.aspx

http://www.beansoftware.com/asp.net-tutorials/images-database.aspx

这应该让你开始,代码明智。

【讨论】:

【参考方案2】:

最好将图像存储在folder 中并将路径保存在数据库中,这将比保存在数据库中快得多。

注意不要使用图像数据类型,这将改变表单数据库本身 :read this

【讨论】:

但这确实让备份变得很痛苦。将它们存储为 blob 的好处是应用程序的所有内容都在数据库中,而不是散布在文件系统中。 并非如此:您无法强制执行链接或文件/数据匹配。只有当您真正关心数据的质量和完整性时,这才是一个解决方案。 SharePoint 将所有内容都存储在数据库中,包括图像和大型文档。所以我会说这是完全可能的,并且会使备份等维护任务变得更加容易。借助 Sql 2008 中新的 FILESTREAM 支持,性能应该不是什么大问题。 -1.... 尤其是备份集成可能会很痛苦。另外,随着 2008R2 向上(建议更新),您可以将它们存储在数据库中......在文件系统中。【参考方案3】:

将图像路径存储在数据库中,而不是存储为二进制,因为它会损害性能。在 SQL Server 中,BLOB 数据类型存储在称为 LOB_data 页面的单独页面中,并且数据页面上的指针将与 LOB_data 页面链接。您也不能在 BLOB 数据类型上创建索引。因此,它对性能产生不利影响。理想的解决方案是将图像存储在共享驱动器中,并将图像链接存储在数据库中。

【讨论】:

-1... 另一个离题的答案,尤其是在数据库中存储图像时完全有效并且有很多优势。也就是说,除非您认为备份是为愚蠢的人准备的,而不是为您准备的。数据库存储是在一个地方进行完全集成备份的唯一方法。 如果您关心的是性能,请尽量避免将图像存储在数据库中,或者如果您使用的是 SQL Server 2008,则使用文件流,但您仍然必须为文件流存储执行单独的备份 我的数据库中有一些文件流列,它们与数据库一起被备份......没有做任何其他事情。 数据库镜像不支持 FILESTREAM。无法在主体服务器上创建 FILESTREAM 文件组。无法为包含 FILESTREAM 文件组的数据库配置数据库镜像。 重复我自己:不是真的:您无法强制执行链接或文件/数据匹配。只有当您真正关心数据的质量和完整性时,这才是一个解决方案。

以上是关于谁能告诉在 SQL 中存储图像的最佳方法是啥的主要内容,如果未能解决你的问题,请参考以下文章

谁能告诉我在 ios 应用程序中录音的最佳录音功能是啥

将图像存储在 android 中的 SD 卡或 SQL lite DB 中的最佳做法是啥?

在java中存储sql查询的最佳方法是啥

在 mysql 中存储二进制数据(图像、pdf、mp3、视频等)的最佳方法是啥,为啥?

在 SQL 数据库中存储没有年份的日期的最佳方法是啥?

用 php 检测浏览器的最佳方法是啥?