【问题标题】:Postgres: updating not-changed rowsPostgres:更新未更改的行
【发布时间】:2011-08-08 16:29:06
【问题描述】:

说,我有以下查询:

UPDATE table_name
SET column_name1 = column_value1, ..., column_nameN = column_valueN
WHERE id = M

问题是 column_value1, ..., column_valueN 没有改变。这个查询会真正执行吗?与使用真正更改的数据进行更新相比,这种情况下的性能如何?如果我每页有大约 50 个此类查询且数据未更改,该怎么办?

【问题讨论】:

标签: postgresql sql-update


【解决方案1】:

您需要在这里通过仅指定更改的列和行来帮助 postgresql。它将继续并根据您指定的任何内容执行更新,而不检查数据是否已更改。

附言这就是 ORM 派上用场的地方。

编辑:您可能还对How can I speed up update/replace operations in PostgreSQL? 感兴趣,其中 OP 竭尽全力加快 UPDATE 性能,而仅通过更新更改的数据即可实现最佳性能。

【讨论】:

  • 顺便说一下,YII 框架的 ORM 并没有检查它,而是执行 UPDATE 查询。
  • 我明白了。在 SQLAlchemy 中,ORM 层完成了繁琐的工作,只在必要时发布 UPDATE。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-21
  • 2023-04-03
相关资源
最近更新 更多