CakePHP 3 ORM:缓存元数据问题

CakePHP 3 ORM : Cache metadata issue

我正在做一个只有几包蛋糕 3 的项目:

我刚刚安装了最后一个(缓存)。

我将我的项目上传到生产服务器,惊讶地发现我使用 ORM 的查询非常慢(在我的本地机器上持续大约 100 毫秒的查询在生产服务器上可能需要 5 或 10 秒服务器)。

information_schema table 上似乎有查询需要花费大量时间和资源。所以我在网上看到我需要在我的配置中启用 cacheMetaData 参数。

我的配置如下所示:

ConnectionManager::config('default', [
    'className' => 'Cake\Database\Connection',
    'driver' => 'Cake\Database\Driver\Mysql',
    'host' => 'my-host',
    'database' => 'my-database',
    'username' => 'my-username',
    'password' => 'my-password',
    'encoding' => 'utf8',
    'timezone' => 'UTC',
    'cacheMetaData' => true // If set to `true` you need to install the optional "cakephp/cache" package.
]);

我按照上面的说明安装了 cakephp/cache 包。但我猜我需要以某种方式(或某处)启用它,但无法弄清楚如何(或在哪里)。

这是我尝试过的:

\Cake\Cache\Cache::config('_cake_model_', [
     'className' => 'File',
     'prefix' => 'myapp_cake_model_',
     'path' => '/cache/models/',
     'serialize' => true,
     'duration' => '+2 minutes',
]);

但它仍然不起作用,我的 缓存cache/models/ 文件夹仍然是空的,请求正在很久了。

我该如何解决这个问题?

感谢您的宝贵时间

金卡兹

有关此主题的详细解决方案,请参阅http://discourse.cakephp.org/t/orm-cache-metadata-issue/1071