Доброго времени!
Немного о задаче:
Необходимо реализовать выборку статей в зависимости от выбранного раздела:
Разделы имеют древовидную структуру с неограниченной вложенностью, в бд таблица разделов имеет поля id & parent_id, которые реализуют всю древовидность.
Сами статьи привязываются только к "конечным" разделам, которые не имеют подразделов.
Пример структуры разделов:
Раздел 1
Т.е. если выбран Раздел 1, то нужно получить id Разделов 1.1.1, 1.1.2, 1.2.1, 1.3.1 и вывести все статьи, которые к ним привязаны. Проблема в том как это реализовано: Выбираются в начале айдишники детей Раздела 1, потом айдишники их детей, итого 4 запроса(в конкретном случае). Но на реальной базе в больших разделах до 100-500 запросов. Плюс выборка статьей по через section_id IN (массив из 100+ элементов) долгое занятие.
Вопрос:
Как увеличить скорость работы, т.к. страница в итоге загружается за 10-15 секунд.
Делаю так строю массив(дерево)загоняю в кеш потом...
Можно сделать так:
В табличку с разделами добавить поле path, которое будет содержать путь от корневой до текущей категории.
Например в твоем примере у каждого раздела id от 1 до 8. Тогда поле path для Раздел 1.1.1 будет таким 1-2-3 При клике на Разделе 1 все id дочерних разделов будут выбраны таким запросом:
SELECT *
FROM table
WHERE path LIKE "$id%";
Таким образом у тебя будет только один запрос)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте! Помогите, пожалуйста, с запросомЕсть таблица Orders и Locations, между ними связь many-to-one
Подскажите как работать в C# с MysqlЧто подключать, как подключатся к mysql и как искать в бд
Запрос удаления по значению checkbox - почему не удаляет? И как выдать сообщение, если не выбрали box
приветКак узнать правильный путь к файлу при загрузке файла в БД?