在Firebird blob字段中存储数百万个小图像

时间:2009-09-02 12:25:46

标签: image firebird

我知道你会说这个问题有几个重复。我读了大部分内容。但我需要回答我提出的具体案例。

我打算在Firebird数据库中存储数百万个小jpg图像(约3kb)。

假设:
- 包含这些图像的表格不包含任何其他信息,但包含其密钥;
- 它不是Web应用程序;
- 图像永远不会更新;
- 在大多数情况下,数据库永远不会增长到超过一位数GB; - 服务器必须易于维护,因为没有DBA可以处理它。

这是一个好方法吗?或者我应该考虑将图像保存在文件系统中吗?

请。我需要特定于非Web应用程序和Firebird数据库的答案。

4 个答案:

答案 0 :(得分:1)

在之前的公司,我们在Oracle 8(然后是9个然后是10个)数据库中以32kb存储了1.55亿个图像。这也有关于每张图像的更多信息。

所以我认为FireBird应该可以容纳一百万左右而不会出现过多的汗水。

答案 1 :(得分:1)

我在Firebird News

中看到了一个关于此问题的讨论

问题是:blob还是不blob?

答案 2 :(得分:0)

我建议存储在文件系统中 - 但是,做三件事中的一件或多件:

  • 将它们存储在分层目录结构中(无法在不知道上下文的情况下建议详细信息),以便读取大目录时没有问题
  • 将它们存储在档案(例如tar)中的集合中,可能是压缩的 - 以节省存储小文件的文件系统浪费
  • 在您的应用中设置缓存机制。

答案 3 :(得分:0)

最好的方法是将图像存储在dbase中,而是将它们与文件系统一起存储。

然后,您可以在dbase中使用图像查找表,其中每个记录包含文件系统中图像文件的相对或绝对路径。

作为一般规则,在dbase中将图像存储为blob是非常不具备的。