0

SQLiteがパス内に2つのファイルを作成する理由と、これらのファイルの違いを知りたいです。

私はデータベース名を持っていますmydatabase

与えられたパスで見ると、2つのファイルがあります。

data/data/pack name/databases/....

1-mydatabase

2-2-mydatabase-journal

4

1 に答える 1

1

mydatabaseそのデータベースに関するすべてを含むメインデータベースファイルです。

mydatabase-journalジャーナルファイルです。デフォルトでは存在せず、SQLite がデータベースで何をしたいかのインテント ログを保持する必要がある場合にのみ、SQLite によって作成されます。基本的に、これは、トランザクションが適切に終了した後に、メイン データベース ファイルに対して行うべきことを意図しています。すべてのトランザクションを正常に終了し、データベースから正常に切断-journalすると、通常、ファイルは自動的に削除されます。

切断が突然発生した場合 (プロセスが強制終了またはクラッシュした場合)、-journalファイルは残り、削除しないでください。次に SQLite がこのデータベースを再度開いたときに、-journalファイルの存在を認識し、未完了のトランザクションを再生またはロールバックして、メイン データベース ファイルの整合性を保ち、破損しないようにします。

ファイルを手動で削除する-journalと、回復は保証されず、データベースが完全に破損する可能性があるため、-journalファイルを削除しないでください。

ファイルを適切に削除するおそらく最も簡単な方法は、次の-journalコマンドを実行することです。

sqlite3 mysqlitedatabase.db VACUUM

データベースを VACUUM (最適化) し、結果としてメイン ファイルのみを残す必要があります。

于 2013-01-24T03:51:46.450 に答える