• 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) 449-04-21  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 Медленные запросы.
ivanickii
4 месяца назад
хостинг: есть
домен: нет
Медленные запросы.
Добрый день. Появилась проблема с медленными запросами. На странице ничего не менялось. только добавлялся товар

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

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


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

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

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

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