Dleshka.org
Авторизация

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

+4
TipTop 29-05-2016 Хаки DLE 1 комментарий
Оптимизация запросов в БД для мультикатегорий


В процессе работы над одним интересным модулем заметил одну закономерность. Когда задействую модуль, контент начинает формироваться и выводиться быстрее. Немножко поэкспериментировал и решил поделиться этим решением с вами :) Скорость обработки запроса увеличивается почти в 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
Информация
Зарегистрируйтесь чтобы комментировать публикацию.
alex-we
24 июля 2016 22:08
+ 0 -
Версия DLE: любая
У меня 10.6 и такой строки:
$where_category = "category = '{$get_cats}'";

нет в моём engine.php
Авторизация