Иметь индекс в столбце varchar
в маленькой таблице.Тогда поиск будет максимально быстрым.Простой индекс btree (по умолчанию) подходит для оператора равенства.
CREATE INDEX smalltbl_lookup ON smalltbl(lookup);
Если вы посмотрите только некоторые значения, это будет самый быстрый способ:
EXISTS (SELECT * FROM smalltbl WHERE lookup = bigtbl.lookup)
В результатеиндексный поиск.Если вы посмотрите все значения (не похоже на ваш), LEFT JOIN
будет быстрее:
SELECT *
FROM bigtbl b
LEFT JOIN smalltbl s USING (lookup)
Преобразование значений из маленькой таблицы в массив и проверка там не могут конкурировать с поиском по индексу.