我有一个Laravel
视图,其中包含大量数据分析结果。所有这些值都在Mysql
视图中计算为单个字段结果,然后作为变量加载到Laravel
路径中。
例如。
userCount | veryActiveUserCount | veryActiveUserMalePercent
-----------------------------------------------------------
88292 | 43223 | 59
-----------------------------------------------------------
问题是这个MySQL
查询大约需要10秒才会导致Laravel超时。
此查询每天只需运行一次,因此不需要为每个页面加载获取新数据。加载Laravel
视图时,有没有办法使用我的结果的缓存版本?
答案 0 :(得分:1)
您是否阅读了docs about caching?
您可以缓存这样的查询:
$value = Cache::get('key', function () {
return DB::table(...)->get();
});
在你的情况下,你应该每天一次/两次“加热”缓存,这样如果缓存过期,用户就不必等待。您可以在带有scheduler的工匠命令中执行此操作。