哪种数据类型最适合将图像保存在数据库中?

Posted

技术标签:

【中文标题】哪种数据类型最适合将图像保存在数据库中?【英文标题】:Which datatype is best for saving images in database? 【发布时间】:2021-11-16 16:55:39 【问题描述】:

我正在使用 phpMyadmin 创建数据库,但我不知道数据库中图像的数据类型。

【问题讨论】:

这取决于您的数据库引擎,即 mysql、Postgres 等。通常,像 BLOB 这样的类型用于存储二进制数据。但可能更有效的方法是将文件存储在特殊存储(本地文件系统或 aws s3 或其他东西)中,并仅将文件路径放入数据库。在这种情况下,varchar 类型就可以了。 【参考方案1】:

您当然可以使用 BLOB 数据类型将图像存储在数据库中

是的,您可以将图像存储在数据库中,但我认为这是不可取的,也不是一般做法。

一般做法是将图像存储在文件系统的目录中,并将对图像的引用存储在数据库中。例如图像的路径、图像名称等。或者,您甚至可以将图像存储在内容交付网络 (CDN) 或跨越一些巨大物理区域的众多主机上,并将访问这些资源的引用存储在数据库中。

图像可以变得非常大,超过 1MB。因此,将图像存储在数据库中可能会给数据库以及数据库和 Web 服务器之间的网络带来不必要的负载(如果它们位于不同的主机上)。

【讨论】:

TINYINT 怎么样? tinyint呢,它是用来存储小数的。 对不起,我的英文有点差,谢谢你的回答。 你绝对不能使用 tinyint 来存储图片。下面的文档将帮助你理解 mysql 数据类型dev.mysql.com/doc/refman/8.0/en/data-types.html 感谢您的帮助!

以上是关于哪种数据类型最适合将图像保存在数据库中?的主要内容,如果未能解决你的问题,请参考以下文章

哪种 .NET 数据类型最适合在 NHibernate 中映射 NUMBER Oracle 数据类型?

哪种列表/集合类型最适合在 WCF 数据协定中使用?

哪种 HSQLDB 数据类型最适合 5000 个字符串:NTEXT、CLOB 或其他。?

我应该使用哪种数据类型将图像存储在数据库(PostgreSQL)中?

哪种 Java EE 技术栈最适合数据驱动的应用程序?

哪种设计模式适合从多个来源获取相同类型的数据,将它们组合成一个单元并应用多个过滤器