查询SQLite数据库文件大小?

时间:2017-01-13 08:56:06

标签: linux sqlite

我们正在为小型ARM设备构建传感器数据收集linux应用程序,数据存储在SD卡上的SQLite数据库中。由于资源有限,我希望每隔一段时间定期检查(物理)数据库大小并丢弃旧数据。

我可以使用C ++或OS函数来获取文件大小,但我认为如果我可以通过查询直接从DB获取文件大小,那将更加优雅和便携。有办法吗?

1 个答案:

答案 0 :(得分:0)

删除数据不会减小文件大小(免费页面只保留在数据库文件中,可以重新用于新数据)。

通过执行VACUUM来减少数据库文件的大小,但实际上需要三倍的文件大小来复制文件。

没有机制来查询文件大小;你必须使用一些操作系统功能。但是要找出有多少免费页面,请使用PRAGMA freelist_count

为防止数据库变得太大,请使用PRAGMA max_page_count(并准备好处理导致的错误)。