0

MySQL InnoDB テーブルに支えられた、適度に大きなモデル セット (約 350,000) があります。私は現在、データベースに属性を保存するこれと同様の論理的な削除方法を使用しています。deleted

これらのアイテムの数を表示するビューがあり、論理的に削除されたアイテムのフィルタリングが非常に遅いことがわかりました。

Item.objects.filter(deleted=False).count() -> ~400ms

削除されたオブジェクトを除外しないと、カウントは比較的速くなります。

Item.objects.all().count() -> ~140ms

deleted不思議なことに、データベースの列にインデックスを追加すると、時間が長くなります。

Item.objects.filter(deleted=False).count() -> ~450ms # indexed on 'deleted'

アプリを 3 倍遅くしないこのソフト削除の方法に代わるものは何ですか?

4

2 に答える 2

1

削除されたアイテムを別のテーブルに保存しますか?

于 2013-03-19T15:28:08.307 に答える