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

时间:2018-04-28 18:03:07

标签: php mysql laravel

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

例如。

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

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

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

1 个答案:

答案 0 :(得分:1)

您是否阅读了docs about caching

您可以缓存这样的查询:

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

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