3
有時我們必須做一個Model instance.save(),無論是否有某個字段發生了變化,只是爲了安全和快速開發。保存django ORM模型沒有變化是多麼昂貴?
- django ORM有多昂貴?
- 信號總是被髮送?
- 執行任何SQL查詢?
我用django調試工具欄進行了測試,在模型中的任何內容發生更改的不同點上執行10.save(),並且日誌不會註冊sql查詢。
其他方式來測試它或一些文章?
謝謝你提前。
有時我們必須做一個Model instance.save(),無論是否有某個字段發生了變化,只是爲了安全和快速開發。保存django ORM模型沒有變化是多麼昂貴?
我用django調試工具欄進行了測試,在模型中的任何內容發生更改的不同點上執行10.save(),並且日誌不會註冊sql查詢。
其他方式來測試它或一些文章?
謝謝你提前。
我不完全確定你的應用程序如何處理這個。
但我跑了一個小測試:
a = Blog.objects.get(pk=1)
for b in range(1, 100):
a.save()
這給我的結果:
87.04毫秒(201個查詢)
要潔具以及一個保存會做兩個查詢:
SELECT ••• FROM `fun_blog` WHERE `fun_blog`.`id` = 1 LIMIT 1
UPDATE `fun_blog` SET `title` = 'This is my testtitle', `body` = 'This is a testbody' WHERE `fun_blog`.`id` = 1
這是Django 1.8.7的行爲。 –
關於信號:https://docs.djangoproject.com/en/de v/ref/models/instances /?from = olddocs#當你保存時發生什麼 – Mark