将图片保存在MySQL数据库中并将其保存为文件

问题描述:

我知道这个问题在这里以各种方式提出,但没有一个答案是确凿的。将图片保存在MySQL数据库中并将其保存为文件

我有一个系统,其中包括更新网站画廊。 我可以将文件“上传”到网站(并在系统中保存一份副本 - 需要)或将其保存在数据库中并保存空间(和另一个上传)。如果我使用这些文件,我需要“通知”每个更改的网页(图片删除,添加或更改),而不仅仅是在数据库中进行更改。

所以:

  1. 如果我们谈论的是一个标准的网站,一个图片库,它是最好的保存照片的图片或在DB?
  2. 如果网页访问量很大或非常大,它有什么区别吗?

重要的区别是什么?或者只是用便捷的方式去?

尽管我介绍了我的情况,但我还希望能有一个“更一般”的答案,在谈论保存文件时,什么是“好”方法。

在此先感谢您的澄清,

Michel。

+0

的可能重复[PHP将图像存储在MySQL或不?(http://stackoverflow.com/questions/527801/php-to-store-images-in-mysql-or-not) - 不是真的PHP具体而言,尽管它的名字。 – eggyal

+0

相关(重复?):[在数据库mysql中保存图像](http://stackoverflow.com/questions/2753193/saving-images-in-database-mysql)。 – mkjeldsen

+0

两者都不一样。这里的问题是没有简单的方法来控制图片更改。如果上传了一些图片,系统需要AJAX制作'get_file_contents'的网站并保存图片。如果图片发生了变化,我需要删除,然后保存新的等。我所读的两个答案都没有这种担心。 – Phoenix

只将结构化数据放入数据库中。图像是文件,应保存在文件系统上。随着图片/用户数量的增长,数据库的性能将越来越差。相反,请创建一个图像对象,您可以使用它来跟踪图像位置和元数据。

在我以前的项目中,我遇到了同样的问题。

我决定只存储图像的路径在我的数据库(这仅仅是一个字符串)去并保存图像中的文件系统,而不是在数据库中。

这是许多方面的最佳做法。 它使您的数据库保持较小,获得大量行数更快,数据库后备数量更小。

只需将图像放在文件中并将路径保存在数据库中,以便稍后可以检索。

+0

这可能无法在复制的情况下工作。只有文件路径将被复制,而不是数据。 –

+0

事实上,文件名称必须不同,否则将无法使用。 – hermann