我的应用程序使用数据库(以及其他东西)来存储扫描的文档。这些通常是JPEG图像,并且大多数是文本。
我知道建议对图像使用文件,并从数据库中链接到它们,但这样更容易检索它们。该应用程序使用单个服务器和多个客户端,存储文件将浪费大量硬盘空间(开销、扇区分配等)。并且需要使用共享文件夹和映射驱动器等。速度慢,安全性差。
无论如何,我们的一些客户已经使用我们的应用程序几年了,他们的数据库已经增长到数百千兆字节,主要是因为这些图像。目前,它们存储在一个InnoDB表(MySQL)中。
问题是:有没有更好的方法?
数据本身是一次写入的,通常不会被删除(但理论上是可能的),所以存储速度慢(在合理范围内)、不可更改且访问速度快的数据将是完美的。
我正在考虑制作自己的存储引擎,其中包括压缩、索引和缓存,这样每个表只允许两列(bigint、blob)。像这样的东西已经存在了吗?
发布于 2011-04-26 02:13:17
MSSQL2005引入了文件流,它允许您将指针存储在数据库中,但将blobs保留在数据库之外的目录中(正如它们应该的那样)。巧妙的是,当您备份数据库时,blobs也会被备份。两全其美。目录也是受限访问的,通常只有SQL本身获得访问权限。
将图像存储为文件,并将指针保存在数据库中。
https://stackoverflow.com/questions/5780869
复制相似问题