如何解决在 MYSQL UPDATE、IF 语句或 CASE 语句中哪个更快
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 举报,一经查实,本站将立刻删除。