Регистрация

Оптимизация запросов в БД для мультикатегорий

TipTop 29-05-2016, 11:25 717 Хаки DLE

Оптимизация запросов в БД для мультикатегорий


В процессе работы над одним интересным модулем заметил одну закономерность. Когда задействую модуль, контент начинает формироваться и выводиться быстрее. Немножко поэкспериментировал и решил поделиться этим решением с вами :) Скорость обработки запроса увеличивается почти в 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)";


Вот и все :)

Почему стоит ставить этот хак даже не смотря на включенный кеш?
1. Кеш все же периодически чистится.
2. В DLE до 11 версии кешируются только первые 6 страниц навигации. В 11 версии уже 11 страниц. Но все равно, все остальные страницы выводятся без кеша.

Версия DLE: любая

С уважением,
Олег Александрович a.k.a. Sander

Другие публикации по категории:

Расширение функционала стандартного рейтинга "Нравится" - "Не нравится"

Confidence уровень доверия

Правила Rewrite для ЧПУ на серверах Nginx DLE 11.0 и ниже

RNoticeMe для DLE 10.2 - 11.x

График выхода серий сериала v.1.2.1 для DLE 9.x - 11.x


Комментарии (1)

avatar
#1 Пользователь offline alex-we
Версия DLE: любая
У меня 10.6 и такой строки:
$where_category = "category = '{$get_cats}'";

нет в моём engine.php
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Powered by Dleshka.org. Сайт предназначен для выбора шаблонов и дополнений с использованием CMS DataLife Engine.
Закрыть