Гриша К.
Новичок
Как вариант: Кэширование функции загрузки древовидного меню.
Здравствуйте.
На сайте используется древовидное меню, данные которого хранятся в БД, дерево представлено в виде списков смежности. Пример меню и исходный код: 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 запросов к БД. Уменьшает ли кэширование в данном случае нагрузку на серевер БД?
Здравствуйте.
На сайте используется древовидное меню, данные которого хранятся в БД, дерево представлено в виде списков смежности. Пример меню и исходный код: 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 запросов к БД. Уменьшает ли кэширование в данном случае нагрузку на серевер БД?
