私はマルチテナントWebアプリケーションで作業します。むしろ大規模になりがちなコレクションの中に多数の文書を持つユーザーのコンテナを明確にする必要があります。この基準を満たしている多くの文書、数千または数百万もの数百のようなものがあることができmongodbから多くの文書を削除します
return self::remove(array('LISTID' => $listId), array('safe' => true));
いくつかのケースでは: は、私のような多くの文書が何かを削除できるようにする必要があります。私はこの操作が多くの時間とスロットルサーバーを取ることができることを心配しています。 多くのドキュメントがある場合、それは彼らに擬似コードのようなオフライン何かを削除するには、キューな操作価値がある:
while (there are documents) {
delete(1000 documents);
sleep();
}
私はこのケースではMongoDBが小さいportiosでデータを削除する方法を疑問に思います。何らかの理由でかなり多くの行を削除するのがむしろmongodbの方が速いことに気付きました。mongodbにデータを格納してプロトタイプを作成し、同様の数の行を削除するのはmysqlではかなり時間がかかりますが、mysqlではテーブルの各行は他のテーブルデータはありますが、依存表にレコードがない場合でも、mongodbでは非常に高速ですが、mongodbではすべてのデータをドキュメントに格納しますが、とにかく私にとっては奇妙に思えます。 それは余分でしょうか?
ありがとうございます。
あなたはいくつのテナントを持っていますか?数千人でない場合は、テナントごとにコレクションを作成し、コレクション全体を削除することができます(1人のテナントのすべてのデータを削除しようとする場合)。あなたが何をしても、これはオフラインのバッチ型操作です。 – Thilo
それは10万人以上のテナントになる可能性があります。この操作は1つのリストのデータをクリアし、テナントは複数のリストを持つことができます。 – Oleg