将图像存储在数据库中的最佳格式是什么,例如二进制、base64 等,以获得最佳速度/大小。
7 回答
Microsoft 对 SQL Server 的建议曾经是,出于速度和大小的考虑,将图像存储在文件系统中,并在数据库中提供链接。我认为他们已经稍微缓和了他们的偏好,但我仍然认为它肯定是一个更好的主意,因为它不会占用数据库中的空间。
Blob 是您问题的答案。
您可以将图像存储在硬盘中并将文件名存储在数据库中,而不是将图像直接存储到数据库中。我认为这种方式是合适的。性能方面这很好。
二进制。
除此之外,您是否选择 PNG、GIF、JPEG、TIFF 等取决于图像的用途(质量、压缩等)。
用例将(应该)驱动格式而不是数据库。
大多数数据库可以以某种方式存储二进制数据:
- MySQL: BLOB ;
- 甲骨文:BLOB;
- SQL Server:二进制、varbinary 和图像。
至于图像文件格式,这是一个单独的问题。不确定你是否暗示了这个问题。如果您是,那么 PNG、GIF 和 JPG 之间通常无关紧要,除了 JPG 是一种有损格式(其他两种格式是 lsosless),这对于照片等来说是可以的,但对于图标或文本来说就不行。
Blob 不在乎你用什么样的图像填充它们,所以实际上,正确的选择可能是在使用之前需要最少的后期选择处理。
使用hdf5。
与 XML 文档类似,HDF 文件是自描述的,允许用户指定复杂的数据关系和依赖关系。与 XML 文档相比,HDF 文件可以包含二进制数据(以多种表示形式)并允许直接访问文件的某些部分,而无需先解析整个内容。
这很大程度上取决于图像的用途。
- 头像只能压缩 JPEGS
- 将通过图像处理软件处理的图像将是 TIFF
- 照片网站上的图像将是 JPEG 供查看,TIFF 供下载。
我们只需要更多信息。如果文件非常大,请将它们存储在数据库中带有链接的目录中。