php - 从 MySQL 数据库(通过 PHP)获取时需要很长时间才能加载的优化图像
问题描述
我有一些响应式图像被输出到一个页面上,其中 URL 来自存储在 MySQL 数据库中的文件名。图像虽然经过优化(即使是大版本也小于 200KB),加载总是需要 5.00 秒。
代码如下,现阶段数据库中只有6张图片用于测试,但我不知道为什么这会影响页面加载速度。当我删除图像或添加从站点文件夹获取的静态图像并手动键入路径时,不会发生此问题。
它$filename
取自页面上的 URL 参数,然后使用 PHP 从 MySQL 数据库中获取详细信息。
当使用 Imagick PHP 库(500,750 和 1000 像素)上传时,图像以 3 种不同尺寸生成,并且通过字符串连接添加尺寸。
问题可能是由 MAMP 上的 MySQL 数据库本身引起的,但除了调查之外,我认为我最好检查一下我在这里没有做完全错误的事情(我对 PHP/MySQL 和 Web 开发相对较新一般来说)。
<?php
isset($_GET['filename']) ? $filename = $_GET['filename'] : header("Location: login.php");
$stmt = $connection->prepare("SELECT * FROM imageposts WHERE filename = :filename");
$stmt->execute([
':filename' => $filename
]);
$www_root = "http://localhost:8888/site";
$db_image_filename = htmlspecialchars($row['filename']);
$db_image_ext = htmlspecialchars($row['file_extension']);
$db_image_title = htmlspecialchars($row['image_title']);
?>
// image output
<img
src="<?php echo $www_root . '/images-lib/' . $db_image_filename . '-500' . '.' . $db_ext; ?>"
srcset="<?php echo $www_root . '/images-lib/' . $db_image_filename . '-500' . '.' . $db_ext; ?> 500w,
<?php echo $www_root . '/images-lib/' . $db_image_filename . '-750' . '.' . $db_ext; ?> 750w"
alt="<?php echo $db_image_title; ?>"
title="<?php echo $db_image_title; ?>"
>
注意:一个典型的文件名是614b66956a121_1632331413-500
在上传图像时通过 Imagick 库生成的,$db_ext
可以是.jpeg
或.png
下图显示了图像加载的 5 秒。
解决方案
我就此联系了 MAMP,因为我注意到有关 MAMP 的这类问题得到了更多的评论和支持等。这是他们在 MAMP 6.5 中遇到的问题,他们设法解决了这个问题,并在 MAMP 6.6 中进行了更新。这解决了问题。
推荐阅读
- typescript - 使用父模块名称生成 Typedoc 输出
- json - Unity3D JSON反序列化空列表?
- docker - Traefik 无法获取 SSL 证书
- python - scikit 图像 random_walker 是否获得专利?
- reactjs - 渲染作为 Prop 传入的组件
- python - 访问 HTML 注释中的标签
- javascript - 无法使用带有 NodeJS 的 BrickFTP API 访问文件
- python - 将 virtualenv 解释器设置为以 root 身份运行?
- kubernetes - 手动控制 GKE 生成的转发规则
- python - 使用 Responder 时指定方法