Forums / National / Russian / Идеи / Модуль pages и structure

Macik
#37024 2013-02-14 15:07
#37019 esclkm:
Like самый медленный. Я против такого.

Добавлено 44 секунды спустя:

Да у в моих проектах дерево часто меняется:-)

Да пожалуй на счет скорости соглашусь. На счет изменений дерева, так. тут нет большой разницы обновлять 1 поле или 2.

А вот, что меня смущает в текущем механизме работы с категориями, так это вся структура категорий с их свойствами грузиться массив structure, который постоянно находится в памяти. Что при значительном количестве категорий может быть проблемой.

 

Добавлено 16 часа спустя:

И все же…

Еще помыслил на счет LIKE. Вот пример - инет-магазин количество категорий несколько сотен (700-800), достаточно разветвленное дерево и нам надо провести поиск в определенном разделе сайта включая все его подразделы (их может быть десятки, а может и сотни).

При испотзовании IN (запросы пишу упрощенно просто для понимания) :

SELECT * from cot_pages where page_cat in ('раздел1','подраздел11','подраздел12','подраздел111','подраздел112','подраздел113','подраздел121',…);

Сталкиваемся с тем, что запрос начинает весить очень много, не говоря о том, что каждая дополнительная категория приводит к почти линейному росту времени на выполнение запроса.

У «медленного» на старте LIKE такой зависимости нет, и уже при достаточно небольшом количестве категорий для поиска, LIKE начнет обгонять указанный выше пример.

SELECT * from cot_pages where page_pathcat LIKE '1.%';

Еще есть вариант (хотя не уверен, что он обгонит LIKE):

SELECT * from cot_pages where substr(page_pathcat,1,2) = '1.';

 

 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
This post was edited by Macik (2013-02-15 07:24, 11 years ago)