我创建了一个小型演示站点,并在其上将图像存储在sql server上的image列中.我有几个问题......
这是一个坏主意吗?
当它增长时,它会影响我网站的性能吗?
另一种方法是将图像存储在光盘上,并仅将对图像的引用存储在数据库中.这一定是许多人常见的困境.我会欢迎一些建议,如果可以的话,我会很乐意犯一个错误.
在数据库中存储图像的常用方法是base64
在存储数据之前将图像转换为数据.此过程将使尺寸增加33%.或者,可以将图像直接存储为BLOB
; 例如:
$image = new Imagick("image.jpg");
$data = $image->getImageBlob();
$data = $mysqli->real_escape_string($data);
$mysqli->query("INSERT INTO images (data) VALUES ('$data')");
Run Code Online (Sandbox Code Playgroud)
然后显示图像
<img src="data:image/jpeg;base64,' . base64_encode($data) . '" />
Run Code Online (Sandbox Code Playgroud)
使用后一种方法,我们节省了1/3的存储空间.为什么base64
在MySQL数据库中存储图像更常见?
更新:关于在数据库中存储图像的优点和缺点有很多争论,大多数人认为这不是一种实用的方法.无论如何,在这里我假设我们将图像存储在数据库中,并讨论了这样做的最佳方法.
问题 :
方法 :
去做 :