微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 MYSQL UPDATE、IF 语句或 CASE 语句中哪个更快

如何解决在 MYSQL UPDATE、IF 语句或 CASE 语句中哪个更快

我正在 MysqL 5.7 中测试查询速度。

1.

UPDATE tablefortest SET testbit = CASE WHEN TEST_YN = 'Y' THEN '1' ELSE '0' END;
UPDATE tablefortest SET testbit = IF(TEST_YN LIKE 'Y','1','0');

两个查询都需要 0.8 秒到 1.1 秒的时间。有时 IF 语句更快,而其他时候 CASE 语句更快。我想知道两个查询的运行原理之间的区别。以及如何提高查询速度???

谢谢。

解决方法

“你为什么[必须……]关心?”

任何 SQL 查询的执行速度……在执行该查询的任何时间……取决于各种各样的环境因素。那么,您为什么要担心 3 毫秒的差异?

,

也许更快:

UPDATE tablefortest SET testbit = TEST_YN = 'Y';

但是......拥有冗余信息是禁忌。

其他方法,每种方法都消除那么大的UPDATE

  • TEST_YN的值改变时,同时改变testbit
  • 对上一条评论使用 TRIGGER
  • 使用“GENERATED”列

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。