SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 02.09.2012 12:32:35

Александр Трофимов
Завсегдатай
Откуда: Юрмала
Зарегистрирован: 19.09.2011
Сообщений: 95

Таблица 2 кол.,2250000 зап. против таблицы 15 кол.,150000 зап.

Есть таблица вида

product_id | param_id

где product_id ID товара, param_id — ID параметра товара.
Параметры делятся на группы, у одного товара обычно есть один параметр из каждой группы.

Чтобы отобрать товары, которые выбирает клиент по параметрам из разных групп (отметить можно несколько параметров из одной группы), используется запрос вида:

SELECT
    pp1.product_id
FROM
    products_params pp1
    JOIN products_params pp2 ON (pp1.product_id=pp2.product_id)
    JOIN products_params pp3 ON (pp2.product_id=pp3.product_id)
WHERE
    pp1.param_id IN (1,2,3,4,...)
    AND pp2.param_id IN (80,81,82,83,...)
    AND pp3.param_id IN (101,102,103,104,...)

Выше клиент выбрал по несколько параметров в каждой из трех групп. Но групп может быть до 15-ти.

Внимание, вопрос:
Если таблицу products_params переделать в таблицу вида:

product_id | param_id1 | param_id2 | ... | param_id15

Будет ли быстрее работать запрос:

SELECT
    product_id
FROM
    products_params
WHERE
    param_id1 IN (1,2,3,4,...)
    AND param_id2 IN (80,81,82,83,...)
    AND param_id3 IN (101,102,103,104,...)

?
Заранее спасибо! +)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson