【100分】在别人代码中看到如下注释,大家觉得他说得对吗?

mingchaoyan 2012-11-14 05:05:29
//UPDATE LOW_PRIORITY ... SET `A` = `A` + 1
//这种SQL语句的执行性能是很低的,因为数据库要先去获取`A`的值,再去加1
//比 UPDATE LOW_PRIORITY ... SET `A` = 10 要慢很多倍。
...全文
244 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
iihero 2012-11-16
  • 打赏
  • 举报
回复
差别不会太大。 UPDATE LOW_PRIORITY ... SET `A` = `A` + 1 UPDATE LOW_PRIORITY ... SET `A` = 10 表面上看,第1个是先读取A的值,再计算一下并更新。这个计算都是很快的运算,几乎可以忽略。 实际上第2个,也是要读取A所在的数据块,然后更新。 时间上应该没有明显区别。 要注意的是,我们倒要看看在A列上建立了索引的情况下,两个更新的时间差距,楼主有兴趣,可以做一下实验。
wkl17 2012-11-16
  • 打赏
  • 举报
回复
不可能差那么多吧..做一个算术运算而已啊..
开启时代 2012-11-15
  • 打赏
  • 举报
回复
不会慢,相差无几
uu_lt 2012-11-15
  • 打赏
  • 举报
回复
直接实验一把就知道了,一般不会有差别
bookc-man 2012-11-15
  • 打赏
  • 举报
回复
引用 1 楼 WWWWA 的回复:
第2句是直接替换常量,不用计算, 第1句要取A值,计算再替换。
++
ACMAIN_CHM 2012-11-15
  • 打赏
  • 举报
回复
差别应该可以忽略,建议楼主做个测试。
nicenight 2012-11-15
  • 打赏
  • 举报
回复
必然要慢一点,但是直接用常量的机会在实际中没多少吧。
goodwithcode 2012-11-15
  • 打赏
  • 举报
回复
感觉不出来有多少不同吧,逻辑也不一样,楼主分真多,,接分
Rotel-刘志东 2012-11-14
  • 打赏
  • 举报
回复
性能不会太低的。
ACMAIN_CHM 2012-11-14
  • 打赏
  • 举报
回复
慢或者会,但决不会慢到一倍以上。 理论上相差无几。
rucypli 2012-11-14
  • 打赏
  • 举报
回复
没觉得性能会低多少 再说set A=A+1 和set A=10根本就是两种逻辑 无法替换
mysdzlt2007 2012-11-14
  • 打赏
  • 举报
回复
执行性能只能根据实际情况相对来比较,后边的倒是正确
WWWWA 2012-11-14
  • 打赏
  • 举报
回复
第2句是直接替换常量,不用计算, 第1句要取A值,计算再替换。

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧