gpt4 book ai didi

php - mysql中如何有一个优化和良好的更新语句?

转载 作者:行者123 更新时间:2023-11-29 01:55:40 24 4
gpt4 key购买 nike

我想写一个语句来将 is_new 更新为 0,条件如 mail.user_id=$user.id

update mails set `is_new=0` WHERE `mails.user_id=$user.id`

我应该添加另一个条件来防止更新已经使 is_new 等于零的记录吗?像这样

update mails set is_new=0 WHERE mails.user_id=$user.id and is_new!=0

哪个说法最好?你认为它也需要有第二个条件吗?

最佳答案

作为一个非常普遍的原则,我将我的 UPDATE 查询构造为仅“接触”实际需要接触的记录。在我看来,这与其说是出于性能原因,不如说是出于可读性原因:后一种查询形式更准确地说明了您要执行的操作——即,您希望为 is_new=0 设置只有那些 is_new 还不是 0 的记录。因此,仅出于这个原因,我认为应该存在额外条件。

更笼统地说,计算机科学界有一句名言:“过早优化是万恶之源”。在处理 MySQL 查询时,我并不总是同意这句话,但它提出了一个重要的观点:如果你对是否要优化某些东西感到困惑,并且你还没有真正尝试过这两种格式和/或采取测量来确定优化产生的差异,你是在浪费时间。 如果你在不知道它会产生什么差异的情况下进行优化,你唯一确定的结果就是你让您的工作变得更加复杂。

因此,在您知道(或有充分理由相信)优化会有所作为之前,不要出于性能原因进行优化。但是总是出于可读性和标准化的原因进行优化,因为您确实知道人们将来必须阅读您的代码。至少这是我的规则。

关于php - mysql中如何有一个优化和良好的更新语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29970228/

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