gpt4 book ai didi

mysql - 使用主键索引删除 MySQL 中的行

转载 作者:行者123 更新时间:2023-11-29 23:18:53 26 4
gpt4 key购买 nike

我正在尝试使用主键搜索删除许多行。

例如

DELETE FROM t1 WHERE t1.pid IN (SELECT pid FROM ...);

这里pid是表t1的主键,但在删除时不使用索引。
内部查询返回太多行,因此整个查询花费了太多时间,因为外部查询没有使用索引。

如何更快地删除这些行?

最佳答案

您应该避免使用子查询,而是使用 JOIN 代替:

DELETE t1
FROM t1 INNER JOIN t2 ON t1.pid = t2.pid
[WHERE .....]

当然,t2 是您在子查询中获取 pid 的表;考虑您还可以添加 WHERE 子句来限制选定(以及删除)的 pid...
另请考虑应对 t2 表上的 pid 列建立索引以加快查询速度...

关于mysql - 使用主键索引删除 MySQL 中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27521487/

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