在php中使用postgres游标进行优化

时间:2015-06-19 08:39:28

标签: php postgresql laravel-5

我正在处理大量数据。这是一个巨大的表,我通过SQL语句从我的php执行联合,并发送到我自己的localhost数据库。我已经解决了这个问题,但我想优化它。它必须在一夜之间合并大约83,000行。

    $con = new PDO("pgsql:host, port,dbname, user, password");
    $con->beginTransaction(); // cursors require a transaction.
    $stmt = $con->prepare($query);
    $stmt->execute();
    $innerStatement = $con->prepare("FETCH 1 FROM cursor1");
    while($innerStatement->execute() && $row = $innerStatement->fetch(PDO::FETCH_ASSOC)) {
        insertDataToDB($row);
    }

问题:将行改为“FETCH 1000 FROM cursor1”使得我每次都取1000行而不是一行?这会有助于表现吗? 我希望这个更大的操作是一次性的事情。但是将来我将不得不移动少量的数据......由于它依赖于与时间戳的比较,所以查询仍然相当繁重,否则我怎么知道我的数据库是否更新?

谢谢。

0 个答案:

没有答案