4

セキュリティと迅速な開発のために、一部のフィールドが変更されたかどうかに関係なく、 Model instance.save() を実行する必要がある場合があります。

  1. これはdjango ORMでどれくらい高価ですか?
  2. 信号は常に送信されますか?
  3. SQLクエリが実行されていますか?

モデル内の何かが変更されたさまざまなポイントで 10 の .save() を実行するために django デバッグ ツールバーをテストしましたが、ログには SQL クエリが登録されません。

それをテストする他の方法またはいくつかの記事?

前もって感謝します。

4

1 に答える 1

2

アプリケーションがこれをどのように処理するかは完全にはわかりません。

しかし、私は小さなテストを実行しました:

a = Blog.objects.get(pk=1)

for b in range(1, 100):
    a.save()

これにより、次の結果が得られました。

87.04 ミリ秒 (201 クエリ)

保存すると 2 つのクエリが実行されることにも注意してください。

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
于 2012-12-06T20:30:03.453 に答える