2

我知道你会说这个问题有几个重复。我读过其中的大部分。但我需要对我所提出的具体案例作出答复。

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

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

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

请。我需要一个针对非 Web 应用程序和 Firebird 数据库的答案。

4

3 回答 3

1

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

所以我认为FireBird应该能够容纳一百万左右而不会流汗。

于 2009-09-02T12:31:09.283 回答
0

我建议存储在文件系统中-但是,请执行以下三件事中的一项或多项:

  • 将它们存储在分层目录结构中(不知道上下文就不能建议细节),这样读取大目录就没有问题
  • 将它们存储在档案(例如tar)中的集合中,可能是压缩的 - 以节省存储小文件造成的文件系统浪费
  • 在您的应用程序中有一个缓存机制。
于 2009-09-02T12:32:45.477 回答
0

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

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

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

于 2009-09-02T13:05:34.130 回答