我在postgresql-12中的两个表table 1和table 2:第一个月表1具有大约7000000个条目。表2具有大约9500000个条目。预计将有10万场比赛。执行此命令需要5个小时。如何优化此查询?
bjp0bcyl1#
要回答你的问题,你需要提供更多关于表或查询计划的信息,就像@Richard Huxton刚才说的,你可以通过在任何你想获取查询计划的命令之前包含EXPLAIN来获取查询计划,在你的例子中,它将是:
EXPLAIN
EXPLAIN DELETE FROM table2 WHERE (ddate, itemno) NOT IN (SELECT ddate,itemno FROM table1);
字符串这样做并将其包含在问题中,但是如果你没有在表上使用索引,你应该尝试这样做,这可能会导致查询速度的显着提高。检查文档here
1条答案
按热度按时间bjp0bcyl1#
要回答你的问题,你需要提供更多关于表或查询计划的信息,就像@Richard Huxton刚才说的,你可以通过在任何你想获取查询计划的命令之前包含
EXPLAIN
来获取查询计划,在你的例子中,它将是:字符串
这样做并将其包含在问题中,但是如果你没有在表上使用索引,你应该尝试这样做,这可能会导致查询速度的显着提高。检查文档here