我应该使用什么来保存数据库中的图像

时间:2013-02-08 14:11:09

标签: php html mysql content-management-system phpmyadmin

我应该使用什么来保存数据库中的图像。我必须用什么类型来存储和检索php和mysql中的图像。

5 个答案:

答案 0 :(得分:3)

经验法则是您不应该将图像存储在数据库中。 Blob可用,但非常糟糕。

您应该做的是将二进制文件存储在文件系统上,该文件系统比数据库快许多倍,并且在数据库中只存储路径或链接或文件名,并让应用程序从路径加载图像。 / p>

这使您可以轻松地为静态文件实现cdn或san存储等内容。它甚至允许你使用像lighttpd这样的东西来显示静态内容图像而不是apache。

https://blogs.oracle.com/manveen/entry/blob_vs_file_system_storage提供了更多信息,但网上有大量有关blob缺点的统计数据和数据

答案 1 :(得分:0)

使用BLOB数据类型,这意味着二进制大对象

答案 2 :(得分:0)

BLOB可能比文件存储慢,但复制,备份和还原单个数据库文件要比管理/维护文件结构中的图像容易得多。

我还建议将图像存储在自己的专用数据库中(将属性/标记信息存储在单独的数据库中)。

答案 3 :(得分:0)

将图像存储在数据库中是一个非常糟糕的主意。数据库决定保存一些信息 - 而不是图像或文件。你有这个目的的硬盘。
相反,您应该将图像保存在磁盘上并将其文件名保存在数据库中。像那样:

$name = uniqid();
file_put_contents($name.".png",$image_data);
mysql_query("INSERT INTO `images` (image) VALUES ('$name.png')") or die(mysql_error()); 

如果您真的坚持在数据库中使用BLOB保存图像。

答案 4 :(得分:0)

简单&优化选项是在服务器上传图像并将“图像的URL”字符串存储在数据库中。

但是,您只想存储实际的图像文件,然后使用Blob数据类型。