2

私には同期プロセスがありCore Data、多くの情報を保存するために使用しています。オーガナイザーで実際のSQLiteデータベースファイルを数回ダウンロードして、データが正しいかどうかを確認しました。

SQLite数日前、2つのファイルのサイズの違いが大きいことに気づきました。1つのファイルは80MBで、もう1つのファイルは約100MBでした。その中のデータをビューアでチェックしたので、SQLite違いはありませんでした。同じテーブル、同じインデックス、同じ行。どうしてそれができるのでしょうか?オブジェクトを削除したときに、一部のデータがファイルに残っている可能性はありますCore Dataか?

編集:

解決策は、オプションNSDictionaryに挿入し、パラメーターとしてaddPersistentStoreメソッドに追加できるオプションフラグです。

NSSQLiteManualVacuumOption
Option key to rebuild the store file, forcing a database wide defragmentation when the store is added to the coordinator.

This invokes SQLite's VACUUM command. It is ignored by stores other than the SQLite store.
4

1 に答える 1

4

Sqlite は、パフォーマンス上の理由から、データを削除するときに未使用のディスク領域を積極的に返しません。これが違いがわかる理由かもしれません。詳細については、次のリンクを参照してください。

SQLite FAQ

于 2012-12-14T08:49:08.563 に答える