gpt4 book ai didi

mysql - 对于具有 MyISAM 存储引擎的高流量服务器,哪个查询在查询优化方面表现出色?

转载 作者:行者123 更新时间:2023-11-29 04:52:01 25 4
gpt4 key购买 nike

以下是两个查询。从查询优化的角度来看,哪一个更好。

//Query 1
UPDATE `table_name` SET `column` = '455' WHERE `row_id` = '433200';

//Query 2
UPDATE `table_name` SET `column` = `column`+1 WHERE `row_id` = '433200';

谢谢, Yaga 士

最佳答案

如果您不强制 MySQL 将字符串转换为整数,我认为差异可以忽略不计。如果类型是整数,请不要将值用引号引起来:

UPDATE `table_name` SET `column` = 455 WHERE `row_id` = 433200;

UPDATE `table_name` SET `column` = `column` + 1 WHERE `row_id` = 433200;

但是,查询说明了两件不同的事情。第一个,您显式设置值的地方,不是线程安全的。如果您有两个或多个 session ,都试图增加该值,最后运行的那个将设置该值,并且很可能会丢失其他值。例如,如果三个连接同时运行查询,则该值可能只会增加一次。为避免这种情况,您必须在 SELECT 之前显式锁定表并在 UPDATE 之后释放它。

第二个查询,您在其中递增值,是线程安全的。如果三个连接都同时运行查询,则该值将递增三倍。

关于mysql - 对于具有 MyISAM 存储引擎的高流量服务器,哪个查询在查询优化方面表现出色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10739585/

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