Оптимизация запросов [новичок]
От: koenjihyakkei Россия  
Дата: 03.12.14 14:22
Оценка:
Ситуация такая.
Есть таблица с полями product_id и category_id. Связи много-много.
На входе: 1 — список категорий и 2 — список категорий-исключений.
На выходе: список товаров, входящие в категории первого списка, но не входящие в категории второго списка.

В общем, алгоритм топорный:
Делаю запрос выбора товаров по первому списку, получаю список товаров, потом в цикле для каждого товара (и каждой категории-исключения) делаю запрос примерно такого вида:
SELECT EXIST( SELECT 1 FROM table WHERE prod_id = cat_id_exclude)

Если 1, то не включаю товар в результирующий список, иначе включаю.

Вроде все работает, но когда выбираю большое количество категорий-исключений, все виснет очень надолго. Что тут можно оптимизировать?

ЗЫ: Сильно не ворчите, я с БД никогда не работал. А тут подруга попросила цены у нее в магазине повысить, вот и тыкаюсь, а времени совсем мало...
ЗЫЗЫ: PHP, MySQL, Joomla, Virtuemart
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.