2014-12-07 88 views
1

目前,我正在制作一个WPF + C#应用程序。我应该将图像存储在服务器上,但我不知道是否应该将图像存储为二进制或base64。如何在SQL Server数据库中存储图像

以上哪一种方法最好?

我使用SQL Server存储数据库!

谢谢!

+1

哪个数据库? oracle,SqlServer,Mysql? – Patrick 2014-12-07 03:30:15

+0

我不问如何将图像存储到数据库,我想知道商店作为二进制或base64是最好的! – 2014-12-07 03:38:32

回答

2

有Microsoft Research的一个非常好的纸张路径称为To Blob or Not To Blob

他们大量的性能测试和分析后得出的结论是这样的:

  • 如果您的图片或文档通常低于在大小256K,将它们存储在数据库中VARBINARY列更有效

  • 如果您的图片或文档的大小通常超过1 MB,将它们存储在文件系统中效率更高(并且对于SQL Server 2008的属性,它们仍处于事务控制下并且是数据库的一部分)

  • 在这两个之间

    ,这取决于你的使用有点难以取舍的

如果你决定把你的照片到SQL Server表,我会强烈建议使用一个单独的表存储这些图片 - 不要将图像存储在“常规”表格中 - 将它们保存在单独的表格中。这样,假设您并不总是需要选择图像,作为查询的一部分,常规表格可以保持精简并且意义非常高效。

但是如果你选择将图像存储在SQL Server数据库,通过各种手段直接它们存储为二进制值 - Base64编码,他们!这是疯狂的,并会大幅度炸毁你的图像尺寸,没有真正的好处。

-1

不是存储图像的字节数,你可以将文件保存在一个特定的文件夹,并保存在数据库中

+0

但我的应用程序安装在许多客户端! – 2014-12-07 03:33:21

+0

将图像存储在SQL Server数据库中是完美的 - 这个问题已经被讨论过了(参见上面的链接)。最好的祝福, – 2014-12-07 03:41:11

相关问题