Задать вопрос
nefyodoff
@nefyodoff

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

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

Вопрос в том, как лучше это реализовать. Была попытка реализовать на mysql-триггерах обновление счетчика каждой категории при изменении/добавлении/удалении товара, но при загрузке большого количества товара такая система работает крайне не стабильно, точнее долго. Кто-нибудь сталкивался с такими задачами?
  • Вопрос задан
  • 2563 просмотра
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Решения вопроса 1
@egorinsk
Еще, если речь об интернет-магазине, можно кешировать число товаров в каждой категории, или кроном раз в 5 минут пересчитывать и сохранять (через запрос SELECT COUNT(*) GROUP BY category_id), но мне подход L0NGMAN нравится больше.

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

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

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

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