php - 加载 Laravel View 时使用 MySQL 结果的缓存版本

标签 php mysql laravel

我有一个 Laravel View ,其中包含大量数据分析结果。所有这些值都在 Mysql View 中作为单个字段结果进行计算,然后作为变量加载到其 Laravel 路由中。

例如。

userCount | veryActiveUserCount | veryActiveUserMalePercent
-----------------------------------------------------------
88292     | 43223               | 59
-----------------------------------------------------------

问题是这个 MySQL 查询需要大约 10 秒,导致 Laravel 超时。

此查询每天只需运行一次,因此不需要为每个页面加载获取最新数据。当我加载 Laravel View 时,有没有办法使用结果的缓存版本?

最佳答案

您读过docs about caching吗? ?

您可以像这样缓存查询:

$value = Cache::get('key', function () {
    return DB::table(...)->get();
});

在您的情况下,您应该每天“预热”缓存一次/两次,这样如果缓存过期,用户就不必等待。您可以在 artisan 命令中使用 scheduler 来执行此操作.

关于php - 加载 Laravel View 时使用 MySQL 结果的缓存版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50079570/

相关文章:

php - 组合框上的空值 - codeigniter

php - Doctrine 和 Symfony 中的 MySQL 用户定义变量

php - 在 PHP 中记录的上传缩略图

java - 如何在Java EE环境中使用MySql处理外来字符

javascript - 如何在 PHP 服务器端处理具有多个文件的 JavaScript 表单数据?

PHP Closures - 获取闭包范围来源的类名

php - 在函数php中获取json数据

php - 将 MySQL 现有数字与变量相加

php - mysql + php 中的标签

Mysql将列数据类型从整数更改为小数(3,2)而不丢失旧数据