說,我有以下查詢:Postgres的:在更新未更改的行
UPDATE table_name
SET column_name1 = column_value1, ..., column_nameN = column_valueN
WHERE id = M
的事情是,column_value1,...,column_valueN沒有改變。這個查詢是否真的會被執行,這種情況下的性能與真正更改的數據進行更新相比如何?如果每頁有大約50個這樣的查詢且未更改數據,該怎麼辦?
說,我有以下查詢:Postgres的:在更新未更改的行
UPDATE table_name
SET column_name1 = column_value1, ..., column_nameN = column_valueN
WHERE id = M
的事情是,column_value1,...,column_valueN沒有改變。這個查詢是否真的會被執行,這種情況下的性能與真正更改的數據進行更新相比如何?如果每頁有大約50個這樣的查詢且未更改數據,該怎麼辦?
您只需指定更改的列和行,即可在此處幫助postgresql。它將繼續執行更新,而無需檢查數據是否已更改。
p.s.這是ORM派上用場的地方。
編輯:您可能也有興趣在How can I speed up update/replace operations in PostgreSQL?,其中OP經歷了所有的麻煩,以加快更新性能,當最好的性能可以通過只更新更改的數據。
的可能的複製[將Postgres的真正更新頁面文件時字段前和更新後的人人平等?(http://stackoverflow.com/questions/40819603/would-postgres-really-update-page-file-when -fields-all-equal-before-and-aft) – styvane