私はsqlite3データベースで作業していましたが、大量のデータ(テーブル全体(DROP
))を削除した後、ファイルサイズは変更されませんでした(テーブルは5MBでした)。私が尋ねているデータベースではありませんが、おそらくこれは私の質問に関係しています。sqliteデータベースからすべてのデータを取り出すには?
特定のメッセージに対してgrep -a
を使用して探しているデータベースがたくさんある場合、問題のデータベースが50MBのサイズで正常に見つかりました。ただし、データベースをsqlite3データベースビューア(またはsqlite3
コマンドラインツール)で開くと、messages
テーブルに800を超えるエントリしか表示されません。現在の自動インクリメントインデックスは18.000を超えています。これは、テーブルのエントリ数です。 grep
で.dbファイルを調べると、私が望むものはすべてそこにあるように見えますが、何とか "隠されています"(?)と推測しています。
どのようにsqliteデータベースからすべてのデータを取得できますか? .dump <table>
には、私が探しているメッセージも含まれていないことに注意してください。これについての簡単な説明と、実際にデータが削除されない理由/ファイルサイズが5MBのテーブルを削除したときに縮小しない理由については、私も感謝しています。
sqlite> .dbinfo
database page size: 4096
write format: 1
read format: 1
reserved bytes: 0
file change counter: 366
database page count: 11405
freelist page count: 10372
schema cookie: 2
schema format: 4
default cache size: 0
autovacuum top root: 0
incremental vacuum: 0
text encoding: 1 (utf8)
user version: 7
application id: 0
software version: 3008005
number of tables: 3
number of indexes: 1
number of triggers: 0
number of views: 0
schema size: 737
(私はこのデータベースを作成したり、これまで編集していなかった、それはInstagramののダイレクトメッセージデータベースだということに注意してください。)
間違った質問をしているようです。あなたが削除したデータを検索することはできず、削除されたメッセージを検索することは意味がありません。たぶんあなたは[まずはsqliteデータベースを掃除する方法?](https://stackoverflow.com/q/18126997/608639)を試してください。 – jww
私がやってみたいのは、真空の反対です。受け入れられた答えに対する私の最後のコメントをチェックして、私のニーズに合ったものを見てください。私は自分自身のデータを削除していない、instagramはすぐにキャッシュから非常に迅速にメッセージを削除するようです。バキュームは間違いなく興味があったものですが、リンクに感謝します! – confetti