2016-08-24 48 views
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

回答