機能追加(7)VACUUM
テストで単語データを千個単位で入れたり消したりしているうちに、SQLiteのDBファイルのサイズがだんだん大きくなってきてしまいました。
auto_vacuum という機能があるようで
SQLで "PRAGMA auto_vacuum = FULL" を実行してみました。
だけど、ファイルサイズ小さくならない。どうやら、auto_vacuumは少し空き領域ができたからと言って、すぐに動作するわけではないようです。
すぐ効果を見たかったのでVACUUMコマンドを用意して、モデルのイニシャライザ中で一回実行しておくようにしました。
def vacuum(self):
with sqlite3.connect(self.mydb) as con:
cur = con.cursor()
#cur.execute("PRAGMA auto_vacuum = FULL") auto_vacuum はすぐには動作しない
cur.execute("VACUUM")
con.commit()
これで最初の頃のサイズに戻りました。
この記事が気に入ったらサポートをしてみませんか?