Yii Cache:在SQLite中发生SQLite DB Lock数据库锁定异常

时间:2014-12-24 11:46:35

标签: php database sqlite caching yii

Yii Cache对我来说很好,直到今天我在使用缓存的脚本中看到数据库异常:

exception 'CDbException' with message 'CDbCommand failed to execute the SQL statement: SQLSTATE[HY000]: General error: 5 database is locked. The SQL statement executed was: DELETE FROM YiiCache WHERE id='9ccac723c84ae75582784f9e3738d781'' in C:\xampp\htdocs\framework\db\CDbCommand.php:336

我不知道为什么在一分钟之前一切正常时出现这个错误。在那之后,我看到了几个相同的异常Yii缓存,然后是另一个:

exception 'CDbException' with message 'CDbCommand failed to execute the SQL statement: CDbCommand failed to prepare the SQL statement: SQLSTATE[HY000]: General error: 1 table YiiCache already exists. The SQL statement executed was: CREATE TABLE YiiCache
(
        id CHAR(128) PRIMARY KEY,
        expire INTEGER,
        value BLOB
)' in C:\xampp\htdocs\framework\db\CDbCommand.php:336

由于缓存正在代码中的许多地方使用,所以我不能把try catch放在任何地方,而是我想解决根本原因。当我删除db缓存文件并且框架启动了一个新文件时,这个问题就解决了。旧文件大小约为71MB。

环境:

WAMP

Yii框架:1.1.8

PHP版本:5.3.8

请让我知道,以便将来可以避免这种情况。

谢谢

更新

我想在这里添加一些可能有用的信息。我的SQlite缓存db文件大小有时会疯狂增加,这会导致DB打开和关闭操作变慢。通常这个文件没有超过500KB的数据,但有时会突然达到40MB,从而减慢了操作速度。

0 个答案:

没有答案