Оптимальный алгоритм подсчета количества объектов

deepslam

Новичок
Оптимальный алгоритм подсчета количества объектов

Добрый день!
У меня есть каталог товаров с рубрикатором, в каждых рубриках лежат товары, подскажите как можно посчитать суммарное количество товаров в каждой рубрике, т.е. чтобы в корневой рубрики число товаров было равно сумме всех товаров в ее подрубриках.

Я делаю следующим образом:
Получаю рубрику, считаю кол-во в ней, далее, получаю подрубрики , считаю сумму в них и складываю.

Данный метод работает, но на больших объемах тормозит.

Скажите как можно увеличить быстродействие этого алгоритма?
 
это вопрос по базам данных?
какая бд, какая структура ....
 
который я использую
индексы есть? (если БД)
Да, но только на id
большые объемы это сколько?
Большие объемы ~ 1000 рубрик
какая бд, какая структура ....
MySQL

Таблица rubrics:
id_cat - id рубрики , первичный ключ, индекс
id_child - id родителя
caption и т.д.

Таблица products:
id_prod - первичный ключ, индекс
id_cat - id рубрики
далее еще поля типа названия и прочего

-~{}~ 18.06.07 23:59:

изучаю, спасибо!
 
посторайся получить данные одним-двумя запросами, а дальше делай на чистом пхп, без запросов к БД.
я так делал, когда нельзя было изменять структуру БД.
 
Окей, спасибо Вам за подсказки, структуру БД , действительно уже не изменить ( Буду думать.
 
Для мускула пятого можно ещё парочку извращение придумать, типа хранимых функций. :(
 
Если запрос действительно "медленный" и быстрее его зделать ну никак - храните в БД суммы Ваших рубрик.
При добавлении товара делайте +1.
Раз в сутки по крону "перерасчёт" данных.
Создавайте для сумм новую таблицу.

Правильные индексы на 99% решат Вашу проблемму.

Если данных очень много - то (по моему мнению) самый идеальный вариант это новая таблица.
 
Да, по поводу сумм была такая идея у меня, но пока попробую сделать индексами.
 
Сверху