我们使用的是副本mongo,有一个collection中大概有1.5亿条记录,[size=10GB,Storage Size=3.4GB,Total Index Size:6GB]
因为是保存的历史记录,我们使用remove删掉30天前的记录(大概200万),但是发现索引大小从6GB涨到9GB.
请问该如何正确的删除历史记录?
给我你的怀抱2017-05-02 09:24:42
通常の状況では、削除するために特別な操作は必要ありません。 MongoDB で使用される Btree も自己バランス型であり、Btree のバランスに影響を与える 3.0.7 以前のバージョンのバグ SERVER-21063 を除いて、再構築する必要がある特別なものは聞いたことがありません。注意。
6Gから9Gに増加するこの状況は聞いたことがありません。スレーブノードにも同じことが当てはまるかどうかを確認できます。可能であれば、検証目的でスレーブ ノード上のインデックスを削除し、再作成してサイズが異なるかどうかを確認します。
編集: 試す前に、compact を試して動作するかどうかを確認できます。インスタンスへの影響に注意し、セカンダリを分離して個別にテストすることをお勧めします。
曾经蜡笔没有小新2017-05-02 09:24:42
これはドキュメント内で説明されていますが、データを削除する場合、コレクション全体を削除してもインデックスは削除されません。したがって、現時点では、インデックスを再構築することをお勧めします。