SQLiteがパス内に2つのファイルを作成する理由と、これらのファイルの違いを知りたいです。
私はデータベース名を持っていますmydatabase
。
与えられたパスで見ると、2つのファイルがあります。
data/data/pack name/databases/....
1-mydatabase
2-2-mydatabase-journal
SQLiteがパス内に2つのファイルを作成する理由と、これらのファイルの違いを知りたいです。
私はデータベース名を持っていますmydatabase
。
与えられたパスで見ると、2つのファイルがあります。
data/data/pack name/databases/....
1-mydatabase
2-2-mydatabase-journal
mydatabase
そのデータベースに関するすべてを含むメインデータベースファイルです。
mydatabase-journal
ジャーナルファイルです。デフォルトでは存在せず、SQLite がデータベースで何をしたいかのインテント ログを保持する必要がある場合にのみ、SQLite によって作成されます。基本的に、これは、トランザクションが適切に終了した後に、メイン データベース ファイルに対して行うべきことを意図しています。すべてのトランザクションを正常に終了し、データベースから正常に切断-journal
すると、通常、ファイルは自動的に削除されます。
切断が突然発生した場合 (プロセスが強制終了またはクラッシュした場合)、-journal
ファイルは残り、削除しないでください。次に SQLite がこのデータベースを再度開いたときに、-journal
ファイルの存在を認識し、未完了のトランザクションを再生またはロールバックして、メイン データベース ファイルの整合性を保ち、破損しないようにします。
ファイルを手動で削除する-journal
と、回復は保証されず、データベースが完全に破損する可能性があるため、-journal
ファイルを削除しないでください。
ファイルを適切に削除するおそらく最も簡単な方法は、次の-journal
コマンドを実行することです。
sqlite3 mysqlitedatabase.db VACUUM
データベースを VACUUM (最適化) し、結果としてメイン ファイルのみを残す必要があります。