我有一个删除语句,用于删除数据库中的 20000 条记录。这20000条记录中的每一行都满足两个条件:id=x和new_tracking_number=y。详情如下:
DELETE FROM tracking_number_pool WHERE (
(id=88 AND new_tracking_number='LPT99') OR
(id=87 AND new_tracking_number='LPT98') OR
(id=86 AND new_tracking_number='LPT97') OR
(id=85 AND new_tracking_number='LPT96') OR
(id=84 AND new_tracking_number='LPT95') OR
...
(id=72 AND new_tracking_number='LPT83')
);
当我在生产环境中运行上面的删除语句时,执行完成需要很长时间。我想知道如何才能提高这个删除操作的效率。
最佳答案
你可以试试
DELETE FROM
tracking_number_pool
WHERE (id, new_tracking_number) in (
(78319988, 'LPT0000001699999'),
(78319986, 'LPT0000001699997'),
..
)
关于mysql - SQL删除where子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49123673/