Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Список товаров по ID категории, самый оптимальный и быстрый способ. Как? 
:(
    Опции темы
Error202
  Дата 18.3.2012, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 5.11.2004
Где: Moscow

Репутация: нет
Всего: нет



Есть таблица товаров
id, name, price

Есть таблица категорий
id, name, parent_id

Есть табличка для товаров, которые находятся в нескольких категориях
id, offer_id, category_id

Не подскажите, как лучше :
1. вытянуть все товары по id категории 
2. вытянуть 20 случайных товаров из категории (включая вложенные) по id этой категории

Условие, в таблице товаров 3 млн записей, в таблице категорий, 2500 записей, в последней таблице 3,8 млн записей

Спасибо!

Это сообщение отредактировал(а) Error202 - 18.3.2012, 20:46
PM MAIL WWW   Вверх
Error202
Дата 18.3.2012, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 5.11.2004
Где: Moscow

Репутация: нет
Всего: нет



Первое сделал...
Код

SELECT *
FROM items as i, links as l, tree as t
WHERE (i.id = l.offer_id) AND (t.id = l.category_id) AND (t.id = 'ПЕРЕМЕННАЯ') AND (i.available = 'true')



Второе реально?
PM MAIL WWW   Вверх
skyboy
Дата 19.3.2012, 00:51 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



если тебе надо часто вытягивать подкатегории при неограниченной вложенности, лучше перейти на структуру Nested sets для хранения стурктуры категорий. или, хотя бы, на materialized path. ну, чтоб избавиться от рекурсии, если вложенность категорий не ограничена сверху.
в текущей ситуации, либо сначала рекурсивно повытягивать все категории, сформировать список id и вторым запросом дернуть случайные товары из указанного списка, либо дергать случайные товары, с последующей проверкой ­— попал в нужную категорию или нет  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0404 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.