Меня интересует вопрос, на сколько будут дорогие SQL запросы с NOT IN или NOT EXISTS?
Допустим есть 2 таблицы
items и
using_items
В таблице
items 12 млн записей, в
using_items 11 млн. Разумеется количество гипотетическое и маловероятное.
SELECT t.id, t.name
FROM items t
WHERE (t.type = 'some_item_type') AND t.id
NOT IN (
SELECT w.id_item
FROM using_items w
)
ORDER BY t.name ASC;
или
SELECT t.id, t.name
FROM items t
WHERE (t.type = 'some_item_type') AND
NOT EXISTS (
SELECT w.id_item
FROM using_items w
WHERE t.id = w.id_item
)
ORDER BY t.name ASC;
На сколько всё будет плохо в каждом из запросов? Если очень плохо, какие есть варианты решения?
Или придётся дробить таблицу
using_items на таблицы по атрибуту
type (using_items_type1, using_items_type2)?
Спасибо.