我有一个 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/