gpt4 book ai didi

MySql 更新需要很长时间

转载 作者:行者123 更新时间:2023-11-29 10:31:51 24 4
gpt4 key购买 nike

我在以下查询中发现了奇怪的行为:

UPDATE llx_socpeople SET no_email=1 WHERE rowid IN (SELECT source_id FROM llx_mailing_cibles where tag = "68d74c3bc618ebed67919ed5646d0ffb");

需要 1 分 30 秒。

当我将命令拆分为 2 个查询时:

SELECT source_id FROM llx_mailing_cibles where tag = "68d74c3bc618ebed67919ed5646d0ffb";

结果是10842

UPDATE llx_socpeople SET no_email=1 WHERE rowid = 10842;

结果以毫秒为单位显示。

表 llx_socpeople 约有 7.000 条记录,llx_mailing_cibles 约有 10.000 条记录。

MySQL版本是:5.7.20-0ubuntu0.16.04.1

我已经尝试优化/修复两个表,但没有效果。

有什么想法吗?

最佳答案

目前,由于子查询正在针对主查询的每一行运行,因此我们预计执行时间会更长。我建议依靠内部联接来执行更新:

UPDATE llx_socpeople AS t1
INNER JOIN llx_mailing_cibles AS t2
ON t1.rowid = t2.source_id
SET t1.no_email=1
WHERE t2.tag = "68d74c3bc618ebed67919ed5646d0ffb";

这样您肯定会获得更好的性能。

您可以使用 EXPLAIN MySql 语句对缓慢的查询进行故障排除。有关它的更多详细信息,请访问 it's dedicated page来自官方文档。它可能会帮助您发现任何丢失的索引。

关于MySql 更新需要很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47262577/

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