• UAH
  • USD
  • RUB
  • EUR
  • +38(044) 392-74-33  Киев
  • +38(057) 728-39-00  Харьков
  • +38(056) 794-38-31  Днепропетровск
  • +38(062) 210-24-93  Донецк
  • +38(032) 229-58-93  Львов
  • +38(048) 738-57-70  Одесса
  • +38(093) 449-04-21  Life
  • +38(067) 400-88-44  Киевстар
  • +38(095) 007-72-35  MTC
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7(499) 348-28-61  Москва

MySQL. Медленные запросы.

Форумы MySQL Медленные запросы.
ivanickii
09.04.2018 22:20
хостинг: есть
домен: нет
Медленные запросы.
Добрый день. Появилась проблема с медленными запросами. На странице ничего не менялось. только добавлялся товар

2018-04-08 20:33:33 - PHP Warning: mysql_query(): MySQL server has gone away in /home/smarttun/smart-tuning.com.ua/www/system/database/mysql.php on line 22
2018-04-08 20:33:33 - PHP Warning: mysql_query(): Error reading result set's header in /home/smarttun/smart-tuning.com.ua/www/system/database/mysql.php on line 22
2018-04-08 20:33:33 - PHP Notice: Error: MySQL server has gone away<br />Error No: 2006<br />
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` = 4
                        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` = 4
                        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` = 4
                       
                        WHERE
                                `p`.`date_available` <= NOW() AND `p`.`status` = '1'
                        GROUP BY
                                `txt`, `pa`.`attribute_id`
                        HAVING
                                `txt` != ''
                        ORDER BY
                                `txt`

in /home/smarttun/smart-tuning.com.ua/www/system/database/mysql.php on line 50
2018-04-08 22:03:45 - PHP Warning: mysql_query(): MySQL server has gone away in /home/smarttun/smart-tuning.com.ua/www/system/database/mysql.php on line 22
2018-04-08 22:03:45 - PHP Warning: mysql_query(): Error reading result set's header in /home/smarttun/smart-tuning.com.ua/www/system/database/mysql.php on line 22
2018-04-08 22:03:45 - PHP Notice: Error: MySQL server has gone away<br />Error No: 2006<br />
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` = 4
                        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` = 4
                        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` = 4
                       
                        WHERE
                                `p`.`date_available` <= NOW() AND `p`.`status` = '1'
                        GROUP BY
                                `txt`, `pa`.`attribute_id`
                        HAVING
                                `txt` != ''
                        ORDER BY
                                `txt`

in /home/smarttun/smart-tuning.com.ua/www/system/database/mysql.php on line 50

В программировании не понимаю ищу исполнителя который за оплату исправит эту ошибку.
Илья
10.04.2018 11:28
хостинг: есть
домен: есть
2
Берете SQL запрос, который в ошибке выводится, ставите перед ним слово EXPLAIN, выполняете в phpMyAdmin получаете информацию:


В результате видим, что для некоторых таблиц не используются индексы плюс грубо происходит сканирование 320 млн комбинаций: 8 * 28177 * 1420
Это нередкая проблема ряда CMS с электронными магазинами, когда их устанавливаешь все работает шикарно, а когда наполняешь товарами все неоптимизированные SQL запросы вырастают в невыполнимых монстров.

Решение - пробовать устанавливать разные индексы (самое простое), разбивать запросы на несколько.
Решить проблему не смогу, но информация будет полезна тому, кто возметься исправлять ошибку.
cardiametr
19.04.2018 13:48
хостинг: есть
домен: есть
У меня аналогичная проблема. Вы решили ее у себя? Помогите советом и мне. Спасибо!
ivanickii
20.04.2018 22:27
хостинг: есть
домен: нет
Нет я ее не решил, на www.opencartforum.com есть пользователь snastik который занимается такими проблемами.
Участвовать в общении на этом форуме могут только
зарегистрированные пользователи.

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

Тема закрыта по истечению срока давности.
Горячая линия
(044)
392 74 33
другие города