图像数据库存储引擎

标签 database image storage

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

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

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

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

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

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

最佳答案

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

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

关于图像数据库存储引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5780869/

相关文章:

PHP上传的图片被截断

jquery - 如何使用 form 和 jquery 将图像插入到 div 中

Android将文件保存到外部存储

sql-server - 在 1 台服务器上的 2 个不同数据库中的表之间使用 INNER JOIN 更新查询

database - 前缀数据库表名

mysql - SQL选择组查询

java - 最快的 Java 自由可再发行数据库

android - 在 android 中 move 、缩放和裁剪图像,如 facebook 个人资料图片

c++ - 嵌入式项目小型资源存储数据库

android - 获取图像缩略图 Android KitKat 新的存储访问框架