[英]Improve sqlite performance in yii
我顯然看到了一些類似的討論,但找不到解決方案(如果有)。 我有一個在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();
首先確定瓶頸在哪里。
try
{
$t_start = time();
$transaction->commit();
$elapsed = time() - $t_start;
}
通過更多地投入,我已經獲得了一些成功。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.