2

データベースに各トランザクションのログを記録する必要がありますが、COMMIT を使用する場合と使用しない場合で動作が異なることに気付きました。
コミットを使用すると、ループ内の各ターンは実質的にゼロになり、コミット時間を使用しない場合は長くなります。
この振る舞いは正常であり、時間を正確に管理する方法があるのだろうか.
ありがとうございました

$microtimeA = microtime( true );
$pdo->beginTransaction();

$i=1;
while($i<=5)
{
    $microtimeB = microtime( true );
    $stmt = $pdo-> prepare( "INSERT INTO BLOG ( TITLE ) VALUES ( $i ) ");
    $stmt-> execute();
    $i++;
    echo "<p>" , number_format( microtime( true ) - $microtimeB , 4 ) , "</p>";
}
$pdo-> commit();

echo "<p>[" , number_format( microtime( true ) - $microtimeA , 4 ) , "]</p>";

コミット:
1: 0.0003
2: 0.0002
3: 0.0002
4: 0.0002
5: 0.0002
[0.0228]

コミットなし:
1: 0.0149
2: 0.0197
3: 0.0416
4: 0.0135
5: 0.0332
[0.1229]

4

1 に答える 1