簡體   English   中英

改善yii的sqlite性能

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM