将图像存储在数据库中 - SQL Server 2008

将图像存储在数据库中 - SQL Server 2008

根据我的理解,有三种方法可以做到这一点。

  1. 文件流
  2. 文件系统
  3. 将图像存储在数据库本身中

我很难决定哪一个更适合我。

我的读取次数会比写入次数多很多,但写入次数也不会完全不频繁。

所有图像的大小肯定都会小于 1 MB,但通常在 50KB 左右。

答案1

如果可以避免,请不要将图像或二进制数据存储在数据库中。它不属于数据库。将图像存储在文件系统中,并将指针连同所有相关元数据(文件类型、大小、日期等)转储到数据库中。

执行此操作时,您需要采取一些预防措施。首先,您需要确保以某种方式避免文件名冲突(也许使用文件 ID 代替真实文件名来保存文件)。其次,确保您不会在单个目录中存放太多文件 - 这可能会导致性能问题。

答案2

答案是,视情况而定。我需要更多地了解您的应用程序的确切性质。您处于使用文件流与将图像存储在数据库中的边缘。请参阅这篇 MSDN 文章全面讨论每种方法的优缺点。我认为最大的决策点将是频繁小更新的性能。

相关内容