1

以下のクエリを効率的に書くにはどうすればよいですか

SELECT DISTINCT a.id 
FROM table1 a where a.id NOT IN (SELECT DISTINCT b.id 
                                 FROM table2 b)

このクエリを投稿すると、挿入クエリを介して結果が table2 に挿入されます。

問題は、table1 に約 75300 のレコードがあり、table2 に 74000 のレコードがあることです。

このクエリは 10 分ごとに実行され、実行には約 1.5 分かかります。

このクエリがより高速になる可能性はありますか?

4

1 に答える 1

4

を使用してみてくださいJoin

SELECT DISTINCT a.id from table1 a
LEFT JOIN table2 b
on a.id = b.id
Where b.id is null

このLeft Join句は、aに一致する行があるかどうかに関係なく、からすべての行を選択しますb。次にwhere、最後に句を使用して、から返された行がa一致しないようにすることができますb

于 2013-04-05T10:57:21.863 に答える