0

sqlite3 データベースに php PDO を使用しました。このデータベースは複数のアプリケーションにアクセスするため、sqlite3 データベースに WAL モードを適用しました。

私の問題は、1 つの php ファイルがあり、sqlite3 でデータを挿入/更新するためにバックエンドで無限に実行されることです。正常に動作しますが、sqlite3 は -WAL モード (databasename-wal) の一時ファイルを作成します。ただし、-wal ファイルのサイズは常に増加しています。-WAL ファイルのデータをメイン データベース ファイルにコミットする方法。

この問題について以下のコードを試しましたが、うまくいきません。

try {
            $dbhandle = new PDO("sqlite:".SQLITE_DB_PATH.DBNAME);
            return $dbhandle;
        } catch (PDOException $e) {
            /*echo 'Connection failed: ' . $e->getMessage();
            exit;*/
        }

$dbhandle->beginTransaction();
$dbhandle->query($query);
$dbhandle->commit();
$dbhandle=null;
4

1 に答える 1

0

WAL ファイルをメイン データベース ファイルにマージするには、PRAGMA wal_checkpointを実行します。

これは、WAL ファイルのサイズが 4 MB に達すると自動的に発生します。

于 2013-10-26T08:02:48.110 に答える