gpt4 book ai didi

MySQL:使用子查询和 "not in"删除行很慢

转载 作者:行者123 更新时间:2023-11-29 06:31:18 25 4
gpt4 key购买 nike

我有 2 张 table :

产品(id {主键}、dcs_no {索引} 等)- 1000 行

product_price_import(dcs_no {主键}和其他)- 100 000 行

我正在尝试这样做:

DELETE 
FROM product_price_import
WHERE dcs_no NOT IN (SELECT dcs_no FROM products WHERE dcs_no <> '')

但是,正如预期的那样,这需要太多时间我遇到了一个解决方案,如果它是“IN”而不是“NOT IN”,应该会更快

DELETE product_price_import 
FROM products
JOIN product_price_import ON product_price_import.dcs_no = products.dcs_no;

谁能告诉我如何优化查询以删除product_price_import 表中产品表中没有dcs_no 值的行?

提前致谢。

最佳答案

您可以使用 LEFT JOIN而不是JOIN ,并检查 NULL id 值在 products表:

DELETE ppi
FROM product_price_import ppi
LEFT JOIN products p ON p.dcs_no = ppi.dcs_no
WHERE p.dcs_no IS NULL

关于MySQL:使用子查询和 "not in"删除行很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56108456/

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