我正在实施一个处理大量图片的项目。
在您看来,以下两种方法的缺点是什么:
使用方法1我可以直接访问图像,就是这样
<img src="same_directory/10.jpg" />
使用方法2,我仍然可以使用上面的HTML,但需要将jpg访问重定向到PHP脚本,该脚本将从数据库返回真实图像。
就性能而言,你觉得它更快吗?
我渴望接近1.
答案 0 :(得分:5)
方法1的优点:
方法2的优点:
考虑性能方法1最好继续进行。
答案 1 :(得分:2)
存储文件系统的速度更快。
答案 2 :(得分:1)
我很想使用第一种方法,因为用图像数据混淆数据库没有实际价值。 (从数据库中获取数据也会明显慢于将其从磁盘上加载。)
但是,作为建议,您可能不希望将磁盘上的完整路径存储到数据库表中的映像,以便将来支持可移植性。 (即:只需将路径和文件名的一部分存储在“已知”基本文件夹中。)
答案 3 :(得分:0)
将图像文件作为图像文件保存在服务器上以降低数据库负载并允许服务器处理缓存等。 总的来说,这取决于我们谈论的图像类型。小缩略图(例如文件图标)不会那么糟糕,但我不会将整个图像存储在数据库中。总的来说,我猜文件系统方法会更快。
答案 4 :(得分:0)
让我们在网络浏览器上调查问题。 当您加载保存在数据库中的10张图片的页面时。您浏览器向服务器发送新的http请求。每个请求init数据库连接和服务器端脚本。或者只是从文件系统中读取静态图像。
什么会更快?其他部分 - 从文件系统或数据库获取数据。如果我们不为数据库使用缓存(但对于10 GB的映像,您应该有10 GB的RAM来缓存此数据)。无论如何,数据库和HTTP服务器都从文件系统中读取数据。但我认为HTTP浏览器比数据库服务器更快地读取数据。
数据库存储只有一件事 - 很容易将数据从一台服务器迁移到另一台服务器。但这对系统性能无关紧要。
不要忘记像/a/b/c/abc.jpg这样的图像的制作路径 - 对于大量图像来说会更快,然后将所有图像放在一个目录中。