【问题标题】:Database storage engine for images图像的数据库存储引擎
【发布时间】:2011-08-12 11:00:40
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 我会看看大佬们在做什么。 IE。 Flickr、Tumblr、Facebook(?) 等

标签: database image storage


【解决方案1】:

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

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

【讨论】:

  • 不够好,因为有很多图像,而且它们往往在磁盘上占用比实际更多的空间,这就是为什么我正在寻找一个连续写入它们的存储引擎。这是一个可以在一年内将超过一百万份文档扫描到其中的系统。
猜你喜欢
  • 1970-01-01
  • 2011-09-05
  • 1970-01-01
  • 2019-08-08
  • 2017-09-07
  • 1970-01-01
  • 1970-01-01
  • 2011-01-31
  • 2012-05-04
相关资源
最近更新 更多