Mysql выберите где не в таблице

У меня есть 2 таблицы (A и B) с одинаковыми первичными ключами. Я хочу выбрать все строки, которые находятся в A, а не в B. Следующие работы:

select * from A where not exists (select * from B where A.pk=B.pk);

однако это выглядит довольно плохо (~ 2 секунды только на 100 тыс. строк в A и на 3-10 тыс. меньше в B)

Есть ли лучший способ запустить это? Возможно, как левый присоединиться?

select * from A left join B on A.x=B.y where B.y is null;

По моим данным, это, кажется, работает немного быстрее (~ 10%), но что в целом?

Ответы на вопрос(5)

Ваш ответ на вопрос