どうすれば可能ですか? SQLite3を使ってレコードをINSERT/DELETEする単純なC++アプリケーションがあります。 私は内部に単一のデータベースと単一のテーブルを使用します。その後、私はdbにいくつかのデータを格納することを選択した後、それが行われ、my.dbのサイズは自然に増加します。Sqlite3/C++はdbサイズを変更せずにDELETE文を実行します
DELETEに問題がありますが、そうではありません。しかし、私がしなければ:
sqlite3 my.db
sqlite> select count(*) from mytable;
そこは0大丈夫である戻されますが、my.dbがを含むフォルダにls -l
をすれば、サイズ は同じです。
誰でも説明できますか?
これが問題だと思われる理由を説明してください。確かにその概念は、あなたの文書を読んだことから来るものではありません。 –
http://www.sqlite.org/lang_vacuum.htmlでは、実際に削除すると空白が残ることが説明されています。 VACUUMを実行してDBを再構築し、スペースを再利用することができますが、そのページのROWIDについてのメモを認識することができます。 – Joe
SQLiteよくある質問:[(12)大量のデータを削除しましたが、データベースファイルが小さくなりませんでした。これはバグですか?](http://www.sqlite.org/faq.html#q12) –