nefyodoff
@nefyodoff

Счетчики элементов большой древовидной структуры?

Существует древовидная структура nested tree в 70 000 элементов — дерево категорий товаров. Задача заключается в том, чтобы выводить те категории, в которых есть хотя бы один товар, и отображать количество товаров для каждой категории.

Вопрос в том, как лучше это реализовать. Была попытка реализовать на mysql-триггерах обновление счетчика каждой категории при изменении/добавлении/удалении товара, но при загрузке большого количества товара такая система работает крайне не стабильно, точнее долго. Кто-нибудь сталкивался с такими задачами?
  • Вопрос задан
  • 2561 просмотр
Решения вопроса 1
@egorinsk
Еще, если речь об интернет-магазине, можно кешировать число товаров в каждой категории, или кроном раз в 5 минут пересчитывать и сохранять (через запрос SELECT COUNT(*) GROUP BY category_id), но мне подход L0NGMAN нравится больше.

> Была попытка реализовать на mysql-триггерах обновление счетчика каждой категории при изменении/добавлении/удалении товара, но при загрузке большого количества товара такая система работает крайне не стабильно, точнее долго.

Знаичт, у вас плохой код, надо его оптимизирвать, возможно, сделать то же самое без триггеров.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
L0NGMAN
@L0NGMAN
В таблице где хранится категории у меня есть поле items (int unsigned). При добавлении продукта в этой категории я прибавляю 1, без всяких триггеров. Работает без проблем.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы