更新:
我使用sqlite database browser执行以下SQL:
vacuum [my table];
commit;
效果很好,我只想按程序方式进行操作
答案 0 :(得分:3)
你可以按如下方式执行原始sql:
from django.db import connection, transaction
cursor = connection.cursor()
# Data modifying operation - commit required
cursor.execute("vacuum my_table")
transaction.commit_unless_managed()
但是,这有点有趣http://www.sqlite.org/lang_vacuum.html/pragma.html#pragma_auto_vacuum
也许我们可以将vacumm设置为自动,但看起来它可能会加剧碎片化。
cursor.execute("PRAGMA auto_vacuum=FULL")