【问题标题】:how expensive is to save a django ORM Model without changes?在不更改的情况下保存 django ORM 模型有多贵?
【发布时间】:2012-12-06 15:00:25
【问题描述】:

有时我们必须做一个 Model instance.save() 不管某些字段是否改变,只是为了安全和快速开发。

  1. django ORM 有多贵?
  2. 总是发送信号?
  3. 是否执行了任何 SQL 查询?

我用 django 调试工具栏测试了 10 .save() 在模型中的任何内容发生变化的不同点,并且日志没有记录 sql 查询。

其他测试方法或一些文章?

提前谢谢你。

【问题讨论】:

标签: python django


【解决方案1】:

我不完全确定您的应用程序如何处理这个问题。

但是我做了一个小测试:

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 仍然适用。
猜你喜欢
  • 2015-11-18
  • 2017-08-05
  • 2023-04-09
  • 1970-01-01
  • 2013-08-02
  • 1970-01-01
  • 1970-01-01
  • 2021-01-06
相关资源
最近更新 更多