私は開くようにフォローを使用しています:ファイルハッシュデータベースを使用した京都キャビネットデータベースでは、ファイルサイズが大きくなるのを防ぐにはどうすればよいですか?
db.open("db.kch#tune_defrag=10000", DB.OWRITER | DB.OCREATE)
私は入れて要素を削除しています。実行終了時にデータベースは "空"ですが、count()関数はすべての要素を削除するため0を返します。テストを繰り返すとファイルサイズが常に増加するのはなぜですか?削除されたレジスタをクリーニングするために "ガベージコレクタ"のようなものを実行することは可能ですか?同じテストを100回実行すると、500 MBのサイズのデータベースがあり、2つのレコードしかありません。
私は "tune_defrag = 10000"を入れようとしましたが、うまく動作しなかったと思います。
Obs:唯一のレジスタが1K未満であるため、なぜレジスタがディスク内に非常に多くの領域を占めるのか分かりません。京都のドキュメントを通じてザッ見てから任意のヘルプ
申し訳ありませんが、私は本当にそうは思わない。 –
@Spamkids:どの部分についてそうは思わない? (ちょうど理解しようとしている)。 – NotMe
私はここでいくつかのテストを行い、興味深い事実を発見しました。もし私がデータベースをバックアップしたときにプロセスをkillしたら(kill-kill -9)公式の文書で述べたように、データベースは "自動復旧"を有効にしています。私は内部変数を見て、 "再編成された"は1に設定されます(私はすべてをやっと閉じますが、常に0でした)。だから、私は再編成のようなものを強制することが可能だと思います。私はちょうど方法を知らない。それは不溶性の問題ではない、私はそれについてほとんど確信している。私はちょうど解決する方法を見つけませんでした。 –