COVID2019 и это вот все. Друзья, вся эта история начинает плохо пахнет. Мойте руки, не ходите в люди. Отложите все плановые покупки и положите в носок заначку. Заприте ваших родителей, бабушек-дедушек на даче. Лучше перебдеть чем недобдеть. Берегите себя!

Ошибка SQL, что означает?


Neuro75

Recommended Posts

Здравствуйте.

Opencart Pro 2.3.0.2

Рекомендованный здесь хостинг (взял VPS-micro; 2600 MHz, 600 Мб, Debian 8, PHP 5.6.30).

В магазине 15000 товаров с заполненными характеристиками (достаточно объемные таблицы). Все летает, всем доволен.

Вместе с тем, нужна фильтрация по марке/модели/году автомобиля.

Остановился на MegaVehicleFilter (дополнение для MegaFilter Pro).

Это дополнение создает три таблицы:

oc_mfilter_vehicle_make - список производителей авто (BMW, Audi и пр.)

oc_mfilter_vehicle_model - список моделей конкретного авто

У меня в них соответственно 90 и 5812 записей.

А вот с третьей таблицей - oc_product_to_mvf интереснее - она учитывает не начальный и конечный года, а для каждого продукта создает отдельную строку для каждого года, входящего в диапазон: т.е. если модель производилась с 1994 по 2005 г.г., то будут строки:

продукт - марка1 - модель1 - 1994

продукт - марка1 - модель1 - 1995

продукт - марка1 - модель1 - 1996

...

продукт - марка1 - модель1 - 2004

продукт - марка1 - модель2 - ...

и пр.

В результате в этой таблице у меня 1 250 000 строк.

Как уже упоминал, без включения MegaVehicleFilter, все летает.

Стоит его включить (он последовательно выводит поля для выбора сначала марки, потом модели, потом года) сайт открывается минут 5, а после выбора марки долго висит и, в конце концов, выпадает в белый экран.

В error-логах Opencart, Апача и MySql при возникновении ошибки чисто. В логах IspManager для сайта:

[Sat Oct 28 12:39:18.072307 2017] [:error] [pid 13977] [client 217.175.1.206:33268] PHP Fatal error:  Uncaught exception 'Exception' with message 'Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INNER JOIN\n\t\t\t\t\t`oc_product_to_store` AS `p2s`\n\t\t\t\tON\n\t\t\t\t\t`p2s`.`product_id` = ' at line 2<br />Error No: 1064<br />SELECT COUNT(DISTINCT `product_id`) AS `total` FROM( \n\t\t\t\tINNER JOIN\n\t\t\t\t\t`oc_product_to_store` AS `p2s`\n\t\t\t\tON\n\t\t\t\t\t`p2s`.`product_id` = `p`.`product_id` AND `p2s`.`store_id` = 0\n\t\t\t\n\t\t\t\tINNER JOIN\n\t\t\t\t`oc_product_to_mfv` AS `p2mfv`\n\t\t\tON\n\t\t\t\t`p2mfv`.`product_id` = `p`.`product_id`\n\t\t AND `p2mfv`.`mfilter_vehicle_make_id` = 13  SELECT COUNT(DISTINCT `product_id`) AS `total` FROM(SELECT DISTINCT `p`.`product_id` FROM oc_product p LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id)  \n\t\t\t\tINNER JOIN\n\t\t\t\t`oc_product_to_mfv` AS `p2mfv`\n\t\t\tON\n\t\t\t\t`p2mfv`.`product_id` = `p`.`product_id`\n\t\t AND `p2mfv`.`mfilter_vehicle_make_id` = 13 in /var/www/www-root/data/www/mysite.parts/system/library/db/mysqli.php on line 45, referer: http://mysite.parts/

Не могу понять в чем ошибка и куда копать.

Заранее спасибо.

Ссылка на комментарий
Поделиться на других сайтах

Задал.

Thank you for contacting us. This is an automated response confirming the receipt of your ticket. One of our agents will get back to you as soon as possible. For your records, the details of the ticket are listed below. When replying, please make sure that the ticket ID is kept in the subject line to ensure that your replies are tracked appropriately.

                Subject: Don't work extension
                Department: Mega Vehicle Filter
                Status: Open
                Priority: High


You can check the status of or reply to this ticket online at: http://support.ocdemo.eu

Regards,
HelpDesk Support Center

 

Уже с утра так висит.

Просто думал может тут что подскажут.

Ссылка на комментарий
Поделиться на других сайтах

2 часа назад, Neuro75 сказал:

Subject: Don't work extension

 

Это на каком языке написано?? Если там и дальше такое, то все нормально, они пытаются понять

Ссылка на комментарий
Поделиться на других сайтах

В 28.10.2017 at 17:07, Neuro75 сказал:

сайт открывается минут 5

 

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

насчет 600мб верится слабо, это жуть как мало да и цифра странная

В 28.10.2017 at 17:07, Neuro75 сказал:

AS `total` FROM( \n\t\t\t\tINNER JOIN\n\t\t\t\t\t`oc_

 

а вот тут пропущена таблица. поэтому и ошибка. Косяк с модулем 100%

Ссылка на комментарий
Поделиться на других сайтах

13 часа назад, nikifalex сказал:

насчет 600мб верится слабо, это жуть как мало да и цифра странная

Ну да,обычно идет как у всех нормальных 512-1024-2048-4096 и т.д...Но даже 1гб мне кажется маловато будет,хотя надо смотреть

Ссылка на комментарий
Поделиться на других сайтах

22 часа назад, nikifalex сказал:

а вот тут пропущена таблица. поэтому и ошибка. Косяк с модулем 100%

Да. Руки-крюки, установил MegaFilterPro криво, поэтому и была ошибка. Исправили, заработало.

23 часа назад, nikifalex сказал:

насчет 600мб верится слабо, это жуть как мало да и цифра странная

Сам удивился, однако вот: Тариф micro

9 часов назад, SunnRi сказал:

Но даже 1гб мне кажется маловато будет,хотя надо смотреть

Увеличил тариф до Standart: 2х2600 МHz, 2000 Мб. Сайт грузится очень быстро, однако при переходе на страницу категории, где установлен MegaVehicleFilter, она открывается за 2 секунды, после выбора марки думает 35 сек, модели - 43, модификации - 43, года - тоже 43. Что есть, конечно, жуть.

Оптимизацию как написано в цикле статей уважаемого, насколько я понимаю админа этого форума Тормозит Opencart провел (как смог). Результата ноль. Пошел тему новую открывать про это, может подскажет кто что.

 

Ссылка на комментарий
Поделиться на других сайтах

Join the conversation

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

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  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.

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу