Подзапросы
, как и использованный здесь подзапрос EXISTS
, печально известны медленной работой в MySQL. Вы должны конвертировать их в JOIN
, если у вас есть такая возможность. JOIN
запрос для вашего примера будет выглядеть так:
SELECT a.url
,a.title
,a.description
,a.jobreferenceno
,a.location
,a.state
,a.country
,a.created_datetime
,a.postalcode
,a.company
FROM TABLE1 as a
INNER JOIN TABLE2 as b
ON a.checkfield = b.checkfield
(Обратите внимание, что это не совсем то же самое, что и ваш оригинал: здесь любая строка из TABLE1, которая соответствует нескольким строкам в TABLE2, будет возвращена несколько раз. Если контрольное поле уникально в обеих таблицах, результат будет одинаковым. )
Тем не менее, неясно, как это действительно помогает - вы на самом деле не сравниваете строки здесь, просто выбираете те строки из TABLE, для которых есть хотя бы одна строка в TABLE2, которая имеет одинаковое значение в контрольном поле
(во всяком случае, checkfield
должен быть проиндексирован в обеих таблицах, чтобы повысить эффективность этих запросов)