在mysql数据库中保存图像的有效方法

时间:2014-02-04 13:33:24

标签: php mysql performance

我有一个MySQL / PHP代码:

  1. 对上传的图片进行编码
  2. 将其保存在数据库中
  3. 一次从数据库中获取编码的base64图像,每次10个
  4. 保存在文件系统中,
  5. 将图像的路径放在同一个数据库表中
  6. 我尝试了200张图像,完成任务大约需要5分钟,但尝试2000张图像需要数小时。

    我一般认为这不是保存数据库中图像的专业方法。我应该如何处理这个问题以提高效率。

1 个答案:

答案 0 :(得分:2)

你可以做多项活动来找出正在发生的事情,

1.使用200,500,1000个图像监视系统利用率,告诉您系统是否支持这么多负载(你有足够的资源),如果你的内存,cpu,io等达到100%那么你需要额外资源

2.monitor db查询/参数,如果没有调整则调整它们(特别是在你的情况下检查缓冲区大小)

3.在数据库中存储图像并再次将它们存储在磁盘上是很重要的任务(根据我是否可以优化该逻辑),而不是将其存储到数据库中,直接将其存储在磁盘上并在db <中存储路径/ p>

4.如果可能的话,尽量使用压缩来存储图像,这在您的情况下非常有用。有许多工具/算法可以为您提供无损压缩(不会妨碍图像质量)。这样可以节省您的空间并提高您的表现