Optimizing database file usage
SQLite
By default, when deleting a large amount of data in an SQLite database, it leaves behind empty space, causing the database file to be larger than stricly necessary.
This might be an issue with some mobile applications, when the disk space of the mobile device is limited.
Solution
Execute the VACUUM SQL command, to truncate the database file and reduce the
disk usage.
According to the application, the VACUUM command can be executed:
- when starting the application,
- after doing a large db operation (like a synchronization with a central db),
- as a manual option that the user can trigger.
Note that SQLite also supports "PRAGMA auto_vacuum", but it appears that it's
not as efficient as the VACUUM command, regarding page fragmentation.
Pay attention to the fact that VACUUM needs twice the disk space of the actual
database file, because it rebuilds totally the db file.
VACUUM is not Informix SQL syntax, use EXECUTE IMMEDIATE to
perform this SQL statement:
EXECUTE IMMEDIATE "VACUUM"