【问题标题】:How to store image in SQL Server database [duplicate]如何将图像存储在 SQL Server 数据库中[重复]
【发布时间】:2015-02-05 00:03:59
【问题描述】:

目前,我正在制作一个 WPF + C# 应用程序。我应该将图像存储在服务器上,但我不知道应该将图像存储为二进制还是 base64。

以上哪种方法最好?

我使用 SQL Server 存储数据库!

谢谢!

【问题讨论】:

  • 哪个数据库? oracle、SqlServer、Mysql?
  • 我不问如何将图像存储到数据库,我想知道存储为二进制或 base64 最好!

标签: c# sql-server wpf image


【解决方案1】:

微软研究院有一篇非常好的论文,叫做To Blob or Not To Blob

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

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

  • 1234563 )
  • 在这两者之间,根据你的使用情况有点折腾

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

但如果您选择将图像存储在 SQL Server 数据库中,无论如何将它们直接存储为二进制值 - 不要 Base64 对它们全部进行编码!这太疯狂了,而且会大大增加您的图像尺寸,而没有真正的好处。

【讨论】:

    【解决方案2】:

    您可以将文件保存在特定文件夹中并将路径保存在数据库中,而不是存储图像的字节

    【讨论】:

    • 但我的应用程序设置在许多客户端上!
    • 在 SQL Server DB 中存储图像非常好——这个问题已经讨论过了(参见上面的链接)。最好的问候,
    猜你喜欢
    • 1970-01-01
    • 2013-11-01
    • 2010-11-07
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 2023-03-19
    • 2015-04-02
    相关资源
    最近更新 更多