Database 用于图像的数据库存储引擎

Database 用于图像的数据库存储引擎,database,image,storage,Database,Image,Storage,我的应用程序使用数据库(除其他外)存储扫描的文档。这些通常是JPEG图像,大部分只是文本 我知道建议将文件用于图像并从数据库链接到它们,但这样更容易检索它们。应用程序使用一台服务器和多个客户端,存储文件将浪费大量硬盘空间(开销、扇区分配等),并且需要使用共享文件夹和映射驱动器等。速度慢,安全性差 无论如何,我们的一些客户已经使用我们的应用程序几年了,他们的数据库已经增长到几十GB,主要是因为这些图像。目前,它们存储在InnoDB表(MySQL)中 问题是:有没有更好的办法 数据本身只写一次,通常

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

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

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

问题是:有没有更好的办法

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


我正在考虑制作自己的存储引擎,包括压缩、索引和缓存,每个表只允许两列(bigint、blob)。类似的东西已经存在了吗?

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


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

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


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

这还不够好,因为有很多图像,它们往往会占用比实际更多的磁盘空间,这就是为什么我要寻找一个连续写入它们的存储引擎。这是一个可以在一年的时间内扫描到超过一百万个文档的系统。这还不够好,因为有很多图像,它们在磁盘上占用的空间往往比实际的要大,这就是为什么我要寻找一个能够连续写入它们的存储引擎。这是一个可以在一年内扫描超过一百万份文件的系统。我会检查大公司在做什么。比如Flickr、Tumblr、Facebook(?)等等。我会检查大人物在做什么。即Flickr、Tumblr、Facebook(?)等。