簡體   English   中英

如何提高 django 中軟刪除的性能?

[英]How can I improve performance of soft-deletion in django?

我有一組由 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 倍?

將刪除的項目存儲在單獨的表中?

復制自另一個討論。

“查詢變得非常復雜” - 選擇時使用視圖而不是表格。 “查詢會隨着時間變慢” - 使用過濾索引,而不是常規索引。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM