Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено?..] Отчет по заказам клиентов - Error No: 1317


max6002

Recommended Posts

Подскажите как оптимизировать запрос в admin/model/report/customer.php, а то сейчас выдает ошибку

Notice: Error: Query execution was interrupted
Error No: 1317

OcStore 1.5.5.1.2, более 1600 клиентов

Надіслати
Поділитися на інших сайтах


в панели хостинга в медленных запросах все чисто. скорее всего обрывает, а то страницу долго грузит

ошибка указывает на этот запрос

Notice: Error: Query execution was interrupted
Error No: 1317
SELECT tmp.customer_id, tmp.customer, tmp.status, COUNT(tmp.order_id) AS orders, SUM(tmp.total) AS total FROM (SELECT o.order_id, c.customer_id, CONCAT(o.firstname, ' ', o.lastname) AS customer, o.email, cgd.name AS customer_group, c.status, (SELECT SUM(op.quantity) FROM `oc_order_product` op WHERE op.order_id = o.order_id GROUP BY op.order_id) AS products, o.total FROM `oc_order` o LEFT JOIN `oc_customer` c ON (o.customer_id = c.customer_id) LEFT JOIN oc_customer_group_description cgd ON (c.customer_group_id = cgd.customer_group_id) WHERE o.customer_id > 0 AND cgd.language_id = '1' AND o.order_status_id > '0') tmp GROUP BY tmp.customer_id ORDER BY total DESC LIMIT 0,50 in /www/system/database/mysql.php on line 50
Ошибка возникает, при попытке загрузить отчет Покупатели-Заказы
Надіслати
Поділитися на інших сайтах


прописывались такие индексы

ALTER TABLE oc_product_attribute ADD INDEX attribute_id ( attribute_id );
ALTER TABLE oc_product_attribute ADD INDEX language_id ( language_id );
 
ALTER TABLE oc_product_description ADD INDEX language_id ( language_id );
 
ALTER TABLE oc_product_image ADD INDEX product_id ( product_id );
ALTER TABLE oc_product_image ADD INDEX sort_order ( sort_order );
 
ALTER TABLE oc_product_option ADD INDEX product_id (product_id);
ALTER TABLE oc_product_option ADD INDEX option_id (option_id);
 
ALTER TABLE oc_product_option_value ADD INDEX product_option_id (product_option_id);
ALTER TABLE oc_product_option_value ADD INDEX product_id (product_id);
ALTER TABLE oc_product_option_value ADD INDEX option_id (option_id);
ALTER TABLE oc_product_option_value ADD INDEX option_value_id (option_value_id);
ALTER TABLE oc_product_option_value ADD INDEX subtract (subtract);
ALTER TABLE oc_product_option_value ADD INDEX quantity (quantity);
 
ALTER TABLE oc_product_reward ADD INDEX product_id ( product_id );
ALTER TABLE oc_product_reward ADD INDEX customer_group_id ( customer_group_id );
 
ALTER TABLE oc_product_to_category ADD INDEX category_id ( category_id );
 
ALTER TABLE oc_product_to_store ADD INDEX store_id ( store_id );
 
ALTER TABLE oc_setting ADD INDEX store_id ( store_id );
ALTER TABLE oc_setting ADD INDEX `group` ( `group` );
ALTER TABLE oc_setting ADD INDEX `key` ( `key` );
ALTER TABLE oc_setting ADD INDEX serialized ( serialized );
 
ALTER TABLE oc_url_alias ADD INDEX query ( query );
Надіслати
Поділитися на інших сайтах


ну, как бы, эти совсем не касаются запроса.

в общем можно и нужно добавить индексы по столбцам из запроса (в любом случае) + таки переписать сам запрос.

однако!

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

вдруг действительно мало времени дается...

Надіслати
Поділитися на інших сайтах

как я понял нужны индексы для таблиц oc_order_product, oc_order, oc_customer
 

ALTER TABLE oc_order_product ADD INDEX order_product_id ( order_product_id );
ALTER TABLE oc_order_product ADD INDEX order_id ( order_id );
ALTER TABLE oc_order_product ADD INDEX product_id ( product_id );

ALTER TABLE oc_order ADD INDEX order_id ( order_id );
ALTER TABLE oc_order ADD INDEX customer_id ( customer_id );
ALTER TABLE oc_order ADD INDEX customer_group_id ( customer_group_id );

ALTER TABLE oc_customer ADD INDEX customer_id ( customer_id );
ALTER TABLE oc_customer ADD INDEX customer_group_id ( customer_group_id );

может что-то лишнее? каким еще полям можно индексы прописать?

 

Надіслати
Поділитися на інших сайтах


  • 4 weeks later...

Получилось данную проблему решить? Тоже с этим столкнулся. Индексы проставил не помогло. Хостер пишет что лимит памяти исчерпан:

 

 

Jun  5 13:39:55 ovzhost80 kernel: [1080659.433317] Out of memory in UB 7982403: OOM killed process 1031164 (mysqld) score 0 vm:1458224kB, rss:159716kB, swap:0kB

 

возможности сменить хостера нету, ngnix и акселлератор стоит, но не погает :(

Змінено користувачем Гість
Надіслати
Поділитися на інших сайтах

Ради эксперемента перенес сайт на мощный сервер, проблема таже самая. Дело в таком кривом запросе в customer.php

Удалить старые заказы не вариант. А вот как из ситуации выйти не понимаю. Почему заходя в Отчеты - Покупатели - Заказы, тупо бразуер грузит и не выдает не оишбок ничего.

Змінено користувачем Гість
Надіслати
Поділитися на інших сайтах

Отсутвовали изначально в OpenCart индексы вот эти, добавив, проблема разрешилась:

 

 

alter table order_product add index order_id(order_id);
alter table order add index order_status_id(order_status_id);
alter table order add index customer_order_status_id(customer_order_status_id);
alter table customer_group_description add index language_id(language_id);

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.