Мы используем cookie-файлы
Для оптимизации работы нашего сайта мы используем cookie-файлы. Продолжая использовать сайт, Вы соглашаетесь с использованием cookie-файлов.
  • UAH
  • USD
  • RUB
  • EUR
  • +38(044) 392-74-33  Киев
  • +38(057) 728-39-00  Харьков
  • +38(056) 794-38-31  Днепр
  • +38(032) 229-58-93  Львов
  • +38(048) 738-57-70  Одесса
  • +38(093) 170-15-42  Life
  • +38(067) 400-88-44  Киевстар
  • +38(095) 630-90-82  MTC
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7(499) 348-28-61  Москва

MySQL. медленный запрос на Опенкарте. В чем дело?

Форумы MySQL медленный запрос на Опенкарте. В чем дело?
novotermua
07.07.2016
хостинг: есть
домен: есть
медленный запрос на Опенкарте. В чем дело?
Вот запрос:
SELECT
            `a`.`attribute_id`,
            REPLACE(REPLACE(TRIM(pa.text), '
'
, ''), '
'
, '') AS `txt`,
            `ad`.`name`,
            `agd`.`name` AS `gname`,
            `agd`.`attribute_group_id`
         FROM
            `oc_product` AS `p`
         INNER JOIN
            `oc_product_to_store` AS `pts`
         ON
            `p`.`product_id` = `pts`.`product_id` AND `pts`.`store_id` = 0
         INNER JOIN
            `oc_product_attribute` AS `pa`
         ON
            `p`.`product_id` = `pa`.`product_id` AND `pa`.`language_id` = 1
         INNER JOIN
            `oc_attribute` AS `a`
         ON
            `a`.`attribute_id` = `pa`.`attribute_id`
         INNER JOIN
            `oc_attribute_description` AS `ad`
         ON
            `ad`.`attribute_id` = `a`.`attribute_id` AND `ad`.`language_id` = 1
         INNER JOIN
            `oc_attribute_group` AS `ag`
         ON
            `ag`.`attribute_group_id` = `a`.`attribute_group_id`
         INNER JOIN
            `oc_attribute_group_description` AS `agd`
         ON
            `agd`.`attribute_group_id` = `ag`.`attribute_group_id` AND `agd`.`language_id` = 1
 
         INNER JOIN
            `oc_product_to_category` AS `p2c`
         ON
            `p2c`.`product_id` = `p`.`product_id`
 
         INNER JOIN
            `oc_category_path` AS `cp`
         ON
            `cp`.`category_id` = `p2c`.`category_id`
 
         WHERE
            `p`.`date_available` <= NOW() AND `p`.`status` = '1' AND `cp`.`path_id` = '71'
         GROUP BY
            `txt`, `pa`.`attribute_id`
         HAVING
            `txt` != ''
         ORDER BY
            `a`.`sort_order`,
            `txt`


За последнее время ничего не устанавливали, только заливали товар. Скажите в чем может быть причина. Спасибо.
info620
08.07.2016
хостинг: есть
домен: есть
Без конкретно вашей БД понять что не так крайне сложно.

MySQL :: MySQL 5.5 Reference Manual :: 13.8.2 EXPLAIN Syntax

Посмотрите сколько записей отбираются, используются ли индекс, какой индекс. На вскидку:
# Напишите секцию WHERE в обратном порядке
# Посмотрите можно ли заменить сей запрос на VIEW потому что REPLACE и TRIM в секции SELECT не кешируються

ІМХО у вас просто стало много записей вот и все :)
Илья
09.07.2016
хостинг: есть
домен: есть
Выполните этот запрос в базу данных, но перед запросом поставьте слово EXPLAIN, таблицу с результатом опубликуйте на форуме.
Участвовать в общении на этом форуме могут только
зарегистрированные пользователи.

Если вы уже зарегистрированы Вам необходимо войти на форум.

Горячая линия
(044)
392 74 33
другие города