設置:
Django的1.1.2中,MySQL 5.1如何使Django的查詢集批量刪除()更有效
問題:
Blob.objects.filter(foo = foo) \
.filter(status = Blob.PLEASE_DELETE) \
.delete()
在ORM此代碼段的結果首先產生一個SELECT * from xxx_blob where ...
查詢,然後做一個DELETE from xxx_blob where id in (BLAH);
,其中BLAH是一個很可笑的ID列表。由於我刪除了大量的斑點,這使得我和DB都非常不高興。
這是有原因嗎?我不明白爲什麼ORM無法將上述片段轉換爲單個DELETE查詢。有沒有一種方法來優化,而不訴諸原始SQL?
這確實是不幸的。感謝您指點我的票。 – svintus 2011-02-06 18:48:11
門票給出了你想要的理由。這並不完全沒有好處。 – 2013-03-11 20:07:56