Java 在数据库与文件系统中存储图像

Java 在数据库与文件系统中存储图像,java,mysql,database,Java,Mysql,Database,在我的java应用程序中,我正在维护一个用户数据库,我必须将用户帐户图片与其他详细信息一起存储。我可以在我的数据库中存储照片,也可以在我的文件系统中存储图像,并在数据库中存储相关路径。在内存和运行时间方面,哪一个更合适 您应该将文件存储在文件系统中。您可以在Exchange上阅读此信息: 如果您有选择,文件系统显然更快 如果必须将varbinary插入数据库,则可以使用它。 您应该根据系统的复杂性和可伸缩性做出决定。我建议您使用文件系统和数据库存储是不允许的,但仍然是可取的。数据库存储的管理总是

在我的java应用程序中,我正在维护一个用户数据库,我必须将用户帐户图片与其他详细信息一起存储。我可以在我的数据库中存储照片,也可以在我的文件系统中存储图像,并在数据库中存储相关路径。在内存和运行时间方面,哪一个更合适

您应该将文件存储在文件系统中。您可以在Exchange上阅读此信息:

如果您有选择,文件系统显然更快

如果必须将varbinary插入数据库,则可以使用它。


您应该根据系统的复杂性和可伸缩性做出决定。我建议您使用文件系统和数据库存储是不允许的,但仍然是可取的。数据库存储的管理总是很容易,但在某些情况下会产生性能问题。文件系统的管理相当复杂,但您将获得更高的性能。

如果情况不大,我建议您将所有数据存储在数据库中,因为在一个数据库访问中,您将能够获得所需的所有数据。如果将图片存储在文件系统中,则需要以DB为单位获取用户ID(或其他任何内容),以便在文件系统中查找用户图片。在本例中有两个请求。@JGeo另一方面,Web服务器的文件服务设施可以随时访问文件系统中的映像,而无需运行任何Java代码或SQL查询。例如,如果一个网站访问者缓存了一个图像--访问了10次,但不需要该图像--但随后需要该图像,因为缓存已过期。@JGeo但这是一个非常“网络”相关的事情。如果我们谈论的是一个没有web界面的独立应用程序,那么您仍然需要重建GUI场景并再次渲染图像——因此您所说的可能适用于此。@MihaiStancu:是的,您是对的。这取决于相关的应用程序。但正如我在第一篇评论中所说的,只有当图片大小很小时,才可以将图片存储在DB中。否则,他应该将它们存储在文件系统中。