Jump to content

Оптимизация запросов при большом количестве категорий


Recommended Posts

Больше 300 категорий с подкатегориями в 3 уровня.

Очень много запросов к бд, от этого тормозит при большой посещаемости.

Есть ли решения, на форуме не нашел. дайте ссылку или подскажите решение. готов до 1тыс.руб. задонатить за решение но с разрешением опубликовать в свободный доступ.

Link to post
Share on other sites

Больше всего нагружает данный запрос:


 

public function get_products($filter = array())

....

if(!empty($filter['category_id']))
        {
            $category_id_filter = $this->db->placehold('INNER JOIN __products_categories pc ON pc.product_id = p.id AND pc.category_id in(?@)', (array)$filter['category_id']);
            $group_by = "GROUP BY p.id";
        }

 

Link to post
Share on other sites

При чём тут запрос для получения списка товаров к категориям?

Категории выбираются всего один раз и строится дерево с помощью рекурсии.

Нужно более подробно изучать в чём проблема.

Link to post
Share on other sites
13 часов назад, hybabyba сказал:

Больше 300 категорий с подкатегориями в 3 уровня.

Очень много запросов к бд, от этого тормозит при большой посещаемости.

Есть ли решения, на форуме не нашел. дайте ссылку или подскажите решение. готов до 1тыс.руб. задонатить за решение но с разрешением опубликовать в свободный доступ.

Вообще 300 категорий - не та цифра, при которой начинаются тормоза. Если у Вас "много запросов к бд", то, скорее всего, причина в какой-нибудь нерационально сделанной доработке. Если хотите решение, то сначала надо диагностировать Вашу, скорее всего, индивидуальную проблему.  Если готовы увеличивать бюджет на решение, обращайтесь в личку... 

Link to post
Share on other sites

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

Link to post
Share on other sites
26 минут назад, a13x сказал:

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

Очень легкомысленно. Уверены в сказаном? Если все категории на верхнем уровне и подкатегорий вообще нет, то не будет тормозить, хоть категорий миллион?

29 минут назад, a13x сказал:

Автор все правильно указал, именно этот код при большом наличии подкатегорий будет тормозить систему.

Автор сказал весьма туманно "Очень много запросов к бд", но не потрудился назвать сколь-нибудь точную цифру. Скорее всего, он ее не знает, и все им написанное весьма приблизительно.

Много раз приходилось заниматься оптимизацией подобных ситуаций, в большинстве случаев причина была не там, где ее представлял владелец сайта...

Link to post
Share on other sites
В 01.03.2021 в 10:19, phukortsin сказал:

Очень легкомысленно. Уверены в сказаном? Если все категории на верхнем уровне и подкатегорий вообще нет, то не будет тормозить, хоть категорий миллион?

Автор сказал весьма туманно "Очень много запросов к бд", но не потрудился назвать сколь-нибудь точную цифру. Скорее всего, он ее не знает, и все им написанное весьма приблизительно.

Много раз приходилось заниматься оптимизацией подобных ситуаций, в большинстве случаев причина была не там, где ее представлял владелец сайта...

Всё верно, именна эта часть кода тормозить не будет хоть категорий миллион.

А зачем вам цифры? Автор просто указал на "узкое горлышко" в системе, цифры вам ни к чему. Нормальный специалист сразу поймёт в чём проблема и без цифр.

 

Link to post
Share on other sites

Нормальный специалист еще в начале темы заметил большие нестыковки в сообщении ТС:

В 01.03.2021 в 07:38, Noxter сказал:

При чём тут запрос для получения списка товаров к категориям?

Категории выбираются всего один раз и строится дерево с помощью рекурсии.

Нужно более подробно изучать в чём проблема.

А если Вам все понятно, может, заодно и укажете для ТС способ решения?

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...