2

我目前是一名学生,我渴望成为一名出色的 Web 开发人员 :)

我想从事一些能够存储/检索图像或任何类型文件(.doc、.xcl、.txt 等)的“实践”项目。有人说最好将 img/any 文件存储在文件系统中,而不是将其保存在数据库中。

我想知道双方的利弊。

我还想知道在 MySQL 中存储 imgs/文件的最佳数据类型是什么(我目前正在使用 longblob for PHP-MySQL)来保存 imgs

我还想知道在 SQL Server 中存储 imgs/文件的最佳数据类型是什么(我目前正在使用 Asp.net Varbinary(max) for SQL Server 2008)用于保存 imgs

最后,我只是好奇像 facebook 和其他大型网络应用程序这样的网站是如何存储 imgs 和文件的。

先生/女士,您的回答将有很大帮助,我们将不胜感激。谢谢++

4

2 回答 2

1

Facebook 使用干草堆存储图像。

这是他们网站上描述图像存储和检索的链接

http://www.facebook.com/note.php?note_id=76191543919

根据以前的经验,我建议不要将文件直接存储到 SQL 数据库中。

于 2012-06-09T16:13:08.350 回答
0

优点:存储在数据库中

  • 文件“永远”保存

  • 可以更轻松地限制对真实文件的访问

  • 从技术上讲,您可以检查重复文件。

  • 您没有将文件保存在驱动器上,因此可以更快地访问服务器

  • 服务器上的文件越少被认为“更好”且更有条理

  • “一个文件处理一切”

缺点:

  • 如果站点已启动但数据库未启动,则文件将无效(通过“直接”链接)

  • 一些无法重新配置的数据库只允许 blob 具有一定的大小限制(几 MB),因此无法存储非常大的图像(但可以分离)

  • 将文件加载到(到变量)时,更多数据存储在内存中;与上面的问题类似,非常大的图像会降低您的服务器速度。

  • 某些文件可能具有不同的字符编码,因此存储和/或检索文件可能会损坏原始文件。我不确定这是否是真正的问题,但我认为是。

我个人建议您不要再将文件存储在我的数据库中,因为它有缺点。

于 2012-06-09T09:27:39.020 回答