我有一个数据库,其中有许多行,这些行随着时间的推移被添加和删除。它变得相当大,当删除行时,sqlite不会释放空间。
需要运行手动vacuum
来压缩数据库。我一直在尝试运行吸尘器,但我不能让命令工作。official documentation没有解释太多,也没有给予工作示例。
如何在sqlite中使用VACUUM INTO
?
我有一个数据库,其中有许多行,这些行随着时间的推移被添加和删除。它变得相当大,当删除行时,sqlite不会释放空间。
需要运行手动vacuum
来压缩数据库。我一直在尝试运行吸尘器,但我不能让命令工作。official documentation没有解释太多,也没有给予工作示例。
如何在sqlite中使用VACUUM INTO
?
1条答案
按热度按时间vqlkdk9b1#
我理解你的沮丧,上次我不得不运行真空也花了我一整个下午。医生当然可以更好地解释参数。
在sqlite 3中:
默认架构名称为
main
。现有模式可以用PRAGMA database_list;
列出。此语法在sqlite 3.15(2016年10月)中引入。在旧版本中,模式名称被硬编码到main中,它不能作为参数传递。https://www.sqlite.org/lang_vacuum.html
根据sqlite版本的不同,schema参数可能是可选的,也可能被忽略。
指定绝对路径(对于Windows,则指定转义反斜杠字符)。当前目录可以是任何内容,这取决于数据库的打开方式和查询的执行方式。对我来说,当省略完整路径时,它总是失败,并出现错误
unable to open database: dbcompacted.sqlite
。