1
我工作的一个项目,该项目只有3蛋糕的几包:CakePHP的ORM 3:高速缓存元数据的问题
- 的CakePHP/ORM
- 的CakePHP /验证
- 的CakePHP/i18n中
- cakephp/cache
我刚安装了最后一个(缓存)。
我将我的项目上传到生产服务器,并惊讶地发现使用ORM的查询速度非常慢(在本地计算机上持续大约100毫秒的查询可能需要5或10秒才能在生产服务器上)。
看起来有information_schema表需要很多时间和资源的查询。所以我去了网上,看到我需要在我的配置中启用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 /缓存包。但我猜我需要以某种方式(或某处)启用它,但无法弄清楚如何(或在哪里)。
这里是我的尝试:
\Cake\Cache\Cache::config('_cake_model_', [
'className' => 'File',
'prefix' => 'myapp_cake_model_',
'path' => '/cache/models/',
'serialize' => true,
'duration' => '+2 minutes',
]);
但它仍然没有工作,我缓存或缓存/模型/文件夹仍然是空的,请求花费很长的时间。
我该如何解决这个问题?
感谢您的时间
kinkaz