gpt4 book ai didi

mysql - 查询需要很长时间才能执行

转载 作者:太空宇宙 更新时间:2023-11-03 10:50:37 26 4
gpt4 key购买 nike

我正在使用我的 sql,我想从表 emaillikebusiness_2 中删除重复行,该表与另一个名为 per2 的表中的数据进行比较,我正在使用的查询是

delete 
FROM
emaillikebusiness_2
WHERE
emaillikebusiness_2.Email_id
IN (
SELECT
per2.BusinessEmail2
FROM
per2 );

解释语句给出输出

'1', 'PRIMARY', 'emaillikebusiness_2', 'ALL', NULL, NULL, NULL, NULL, '30670', 'Using where'
'2', 'DEPENDENT SUBQUERY', 'per2', 'ALL', 'idx_email2person2', NULL, NULL, NULL, '24710', 'Range checked for each record (index map: 0x1)'

我还在两个表上创建了 INDEX,还尝试在单个表上创建索引,但查询仍然需要很长时间才能执行。无论如何我可以减少查询执行时间

最佳答案

MySQL 倾向于优化 WHERE ... IN (SELECT ...) 很差。请改用 JOIN:

DELETE e.*
FROM emaillikebusiness_2 AS e
JOIN per2 AS p
ON e.Email_id = p.BusinessEmail2

我发现使用 IN,它通常会对第一个表进行全面扫描,在第二个表的索引中搜索 Email_id,即使第一张 table 比第二张 table 大得多。但是通过 JOIN,它可以更有效地匹配两个表的索引。

关于mysql - 查询需要很长时间才能执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25368009/

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