Данный материал предоставлен сайтом ProWebber.cc исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно Оптимизация запросов в бд для мультикатегорий.
Скачать бесплатно Оптимизация запросов в бд для мультикатегорий.
В процессе работы над одним интересным модулем заметил интересную закономерность.
Когда задействую модуль, контент начинает формироваться и выводиться быстрее.
Немножко поэкспериментировал и решил поделиться этим решением с вами :)
Скорость обработки запроса увеличивается почти в 10 раз. Проверено опытным путем.
С подробным изложением всех замеров можно ознакомиться у меня на сайте
Установка
Открыть файл engine/engine.php
Найти код:
После него вставить:
Почему стоит ставить этот хак даже не смотря на включенный кеш?
1. Кеш все же периодически чистится.
2. В DLE до 11 версии кешируются только первые 6 страниц навигации. В 11 версии уже 11 страниц. Но все равно, все остальные страницы выводятся без кеша.
Версия DLE: любая
С уважением,
Олег Александрович a.k.a. Sander
Когда задействую модуль, контент начинает формироваться и выводиться быстрее.
Немножко поэкспериментировал и решил поделиться этим решением с вами :)
Скорость обработки запроса увеличивается почти в 10 раз. Проверено опытным путем.
С подробным изложением всех замеров можно ознакомиться у меня на сайте
Установка
Открыть файл engine/engine.php
Найти код:
$where_category = "category = '{$get_cats}'";
}
}
}
}
После него вставить:
$db->query("SELECT id FROM ".PREFIX."_post WHERE {$where_category} AND approve=1" . $where_date);
$ids = array();
while($r = $db->get_row()) $ids[] = $r['id'];
if(count($ids)) $ids = implode(',',$ids);
else $ids = 0;
$where_category = "id IN ($ids)";
Вот и все :)$ids = array();
while($r = $db->get_row()) $ids[] = $r['id'];
if(count($ids)) $ids = implode(',',$ids);
else $ids = 0;
$where_category = "id IN ($ids)";
Почему стоит ставить этот хак даже не смотря на включенный кеш?
1. Кеш все же периодически чистится.
2. В DLE до 11 версии кешируются только первые 6 страниц навигации. В 11 версии уже 11 страниц. Но все равно, все остальные страницы выводятся без кеша.
Версия DLE: любая
С уважением,
Олег Александрович a.k.a. Sander