图像的数据库存储引擎

时间:2011-04-25 17:09:16

标签: database image storage

我的应用程序使用数据库(除其他外)存储扫描的文档。这些通常是JPEG图像,大多只是文本。

我知道建议使用图像文件并从数据库链接到它们,但这样更容易检索它们。该应用程序使用一个服务器和多个客户端,存储文件会浪费大量硬盘空间(开销,扇区分配等),并需要使用共享文件夹和映射驱动器和东西。慢,不太安全。

无论如何,我们的一些客户已经使用我们的应用程序几年了,他们的数据库已经增长到数十GB,主要是因为这些图像。目前它们存储在InnoDB表(MySQL)中。

问题是:有更好的方法吗?

数据本身是一次写入的,通常不会删除(但理论上可行),因此存储速度慢(在合理范围内),不可更改且访问速度快的东西将是完美的。

我正在考虑制作自己的存储引擎,其中包括压缩,索引和缓存,每个表只允许两列(bigint,blob)。这样的事情是否已经存在?

1 个答案:

答案 0 :(得分:0)

MSSQL 2005引入了文件流,它允许您在数据库中存储指针,但是将blob保留在数据库和目录中(因为它们应该是这样)。巧妙的是,当您备份数据库时,blob也会得到备份。两全其美。这些目录也是受限制的访问,通常只有SQL本身才能访问。

将图像存储为文件,将指针保存在数据库中。