gpt4 book ai didi

MySql 删除需要很长时间

转载 作者:行者123 更新时间:2023-12-01 00:18:31 24 4
gpt4 key购买 nike

我有一个查询要根据主键删除一组 300 条记录。

该表大约有 250,000 条记录和四列(int PK、varchar、date、tinyint),因此它应该是一个非常易于管理的大小,但是,在没有其他查询运行的情况下删除大约需要 2 分钟,这看起来很不错过多取决于删除的行数和表的大小。

SQL 看起来像这样:

-- this takes less than 1 second
CREATE TEMPORARY TABLE IF NOT EXISTS temp AS (
SELECT id
FROM some_other_table
WHERE ...
LIMIT 300
);

-- id is the primary key
-- this takes upwards of 2 minutes
DELETE FROM queue WHERE id in(
select id from temp
);

该表只有一个附加索引,没有外键关系。关于我可以做些什么来加快速度,有什么想法吗?

最佳答案

Mysql不能很好的优化IN,改用JOIN:

DELETE q.* FROM queue q INNER JOIN temp t ON q.id=t.id

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

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