Php 为什么访问数据库比缓存阵列更快?

Php 为什么访问数据库比缓存阵列更快?,php,laravel,optimization,Php,Laravel,Optimization,我有以下(未优化)代码: 页面加载时间为(11.11s)-平均5次尝试 我访问这个方法大约100次来搜索给定的键(我知道我可以通过传递一组键来优化它) 但是,如果我试图通过定义以下功能来优化它: public function getFromAllKeys($keyName) { ... $allKeys = Cache::remember('myData', 60, function () { return LokaliseKey::all()->keyBy

我有以下(未优化)代码:

页面加载时间为(11.11s)-平均5次尝试

我访问这个方法大约100次来搜索给定的键(我知道我可以通过传递一组键来优化它)

但是,如果我试图通过定义以下功能来优化它:

public function getFromAllKeys($keyName) {
    ...
    $allKeys = Cache::remember('myData', 60, function () {
       return LokaliseKey::all()->keyBy('key_id'); // ± 4000 records
    });

    return Cache::get('myData')[$keyName];
}

页面加载时间甚至更慢(15.95s)

您认为页面加载时间在第一次请求时更慢还是在每次请求时都慢?@AngadDubey当页面完全加载时loaded@kerbholz好的,
Cache::memory()
仅当数据尚未缓存时才缓存数据,不是吗?你是在使用缓存还是只是在模拟缓存?Larave的默认缓存是array,这不是一个很好的缓存。@IGP我正在缓存到
文件
。我想我应该
redis
或其他东西,但不确定这是否是这里的主要问题。
public function getFromAllKeys($keyName) {
    ...
    $allKeys = Cache::remember('myData', 60, function () {
       return LokaliseKey::all()->keyBy('key_id'); // ± 4000 records
    });

    return Cache::get('myData')[$keyName];
}