gpt4 book ai didi

mysql - 我是否应该使用 WHERE 来评估我要设置的字段?

转载 作者:行者123 更新时间:2023-11-29 05:56:26 25 4
gpt4 key购买 nike

MySql 哪个更好:

UPDATE `table` SET value = 0 WHERE id = 1 AND value != 0;

UPDATE `table` SET value = 0 WHERE id = 1;

idvalue 需要为零,但可能已经为零。是否先评估它是否为零更有效,从而可能阻止更新?

最佳答案

如果您将其设置为已有的值,MySQL 将不会更新该行。这就是为什么“受影响的行”可能返回零,即使您在 id 上的条件找到了一行。如果您的更新不会导致值出现任何净差异,则行不会“受影响”。

查询的效率主要取决于选择最少的匹配行集。在您的情况下,您已经通过主键选择 id (我假设这是一个主键)。这与您希望的一样高效。

因此您通过主键进行查找,保证找到 1 行或零行(如果没有具有该 PK 值的行,则为后者)。

与 PK 查找本身相比,根据最多单行评估 WHERE 子句的第二项不是很大的开销。

差异(如果有的话)非常小,您可能应该先花时间优化其他查询,然后再将注意力转移到像这样的微优化上。

关于mysql - 我是否应该使用 WHERE 来评估我要设置的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49075129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com