[英]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.