Как вариант: Кэширование функции загрузки древовидного меню.

Гриша К.

Новичок
Как вариант: Кэширование функции загрузки древовидного меню.

Здравствуйте.

На сайте используется древовидное меню, данные которого хранятся в БД, дерево представлено в виде списков смежности. Пример меню и исходный код: http://demo.pozvonochnik.info/for/phpclub.ru/menu_tree.php

Корневые разделы меню:
Раздел 1 (id=1)
Раздел 2 (id=2)
-


При нажатии на 'Раздел 2' отображаются его подразделы и содержимое данной страницы
Раздел 1 (id=1)
Раздел 2 (id=2)
- Подраздел 2.1 (id=3)
- Подраздел 2.2 (id=4)


При нажатии на 'Подраздел 2.2' отображается его содержимое и меню остается в раскрытом виде.
В итоге получается 5 запросов к БД.

Соотвественно при большей вложенности запросов еще больше (7, 9 и т.д.).
Вообще предполагаемое максимальное количество подразделов основных разделов 3.

Я решил попробоавть исользовать кэширование.
Для этого я использую PEAR :: Cahe_lite и кэширую конечную функцию отображения меню.

-~{}~ 22.08.06 8:48:

Потестировал скорость выполнения скрипта (PECL: apd) при кэшировании и без него, в результате:
1) При кэшировании 40-43ms (милесикунды)
2) Без кэширования 38-40ms (милесикунды)

Получается, что в данном случае кэширование не уменьшает скорость выполнения скрипта.
Но без кэширования, запускаются 3 функции и 5 запросов к БД. Уменьшает ли кэширование в данном случае нагрузку на серевер БД?
 

zerkms

TDD infected
Команда форума
Уменьшает ли кэширование в данном случае нагрузку на серевер БД
риторический вопрос: а является ли время выполнения скрипта следствием нагрузки на сервер или нет? ;)
 

Гриша К.

Новичок
zerkms, спасибо за ответ.
риторический вопрос: а является ли время выполнения скрипта следствием нагрузки на сервер или нет?
Я хотел задать такой вопрос, потому что как раз не могу сказать правильного ответа на него.

Думаю, что ответ на ваш вопрос будет да. Правильно ли?
В таком случае кэширование мне в описанном выше случае ненужно.
Я подумал, что возможно на сервер БД может идти нагрузка от большего кол-ва запросов.
 
Сверху