【发布时间】:2016-10-23 23:43:06
【问题描述】:
我看到一些明显类似的讨论,但找不到解决方案(如果有的话)。我有一个项目在 linux 机器上运行。
问题是使用数据库需要很长时间。例如,1000 次插入大约需要 10 秒。
我尝试以不同的方式减少时间但收效甚微,所以我认为我只是在这里放置了我的代码的一部分,也许有一些关键的事情我做得不对。
首先,main.php中的数据库是这样配置的:
'db'=>array(
'pdoClass' => 'NestedPDO',
'connectionString' => 'sqlite:/tmp/mydb.db',
'class' => 'CDbConnection',
'schemaCachingDuration' => 100)
我通过以下方式使用database:
$connection=Yii::app()->db;
$transaction = $connection->beginTransaction();
try
{
Some Code..
$transaction->commit();
}
catch (Exception $ex)
{
$transaction->rollback();
}
在Some Code 内部,可能会调用connection 变量传递给的不同函数。
最后每个sqlite command(例如1000次插入)写成这样:
$statement= 'insert into my_tbl (id, name) VALUES(:id, :name)';
$command=$connection->createCommand($statement);
$command->bindParam(":id", $id);
$command->bindParam(":name", $name);
$command->execute();
【问题讨论】:
-
This answer 可能有用。