php - 将图片保存到mysql数据库的有效方法

标签 php mysql performance

<分区>

我有一个 MySQL/PHP 代码:

  1. 对上传的图片进行编码
  2. 将其保存在数据库中
  3. 从数据库中获取编码的 base64 图像,一次 10 张
  4. 保存在文件系统中,并且
  5. 将图像的路径放在同一个数据库表中

我尝试使用 200 张图片完成任务大约需要 5 分钟,但尝试使用 2000 张图片需要几个小时。

我通常不认为这是将图像保存在数据库中的专业方法。我应该如何处理以提高效率。

最佳答案

您可以进行多项事件以了解正在发生的事情,

1. 监控您的系统使用情况以运行 200,500,1000 张图像,这将告诉您您的系统是否支持那么大的负载(您是否有足够的资源)如果您在内存、cpu、io 等方面达到 100%,那么您需要额外资源

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

3.在我看来将图像存储在数据库中并再次将它们存储在磁盘上是一项繁重的任务(看看您是否可以优化该逻辑),而不是将其存储在数据库中,直接将其存储在磁盘上并将路径存储在数据库中

4.如果可能的话,不要按原样存储图像,而是使用压缩,这对您的情况非常有用。有许多工具/算法可以为您提供无损压缩(不会影响图像质量)。这将节省您的空间并提高您的性能

关于php - 将图片保存到mysql数据库的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21553967/

相关文章:

php - Codeigniter datamapper 一对多关系

php - SQL左连接多对多,只在左表中显示不同的ID

php - 在 CakePHP 中将数据保存到数据库中的 2 个表中

c - Haskell 与 C 速度 : Sieve of Eratosthenes

php - 选择最后受影响的行

php - 在共享主机上安装 PhantomJS (1and1)

java - 带增量运算符的动态 MySQL 查询

使用 MysqlDb 时出现 Python 错误 - sets 模块已弃用

performance - SAS:PROC FREQ 或 PROC REPORT 的单个表标题?

r - 加速此循环以使用 data.table 创建虚拟列并在 R 中设置