【问题标题】:Improve sqlite performance in yii提高 yii 中的 sqlite 性能
【发布时间】: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();

【问题讨论】:

标签: php linux sqlite yii


【解决方案1】:

首先确定瓶颈在哪里。

try
{
    $t_start = time();
    $transaction->commit();
    $elapsed = time() - $t_start;
}

通过更频繁地提交,我增加了一些不错的成功。

【讨论】:

    猜你喜欢
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-11
    • 1970-01-01
    • 2010-12-15
    • 1970-01-01
    相关资源
    最近更新 更多