Jump to content
Sign in to follow this  
Petr

SELECT p.product_id, IF (p.price = '0'

Recommended Posts

Здравствуйте, данный запрос отправлят базу отдыхать на час когда в магазин 80 + к товаров, что можно с этим сделать, как и кого придушить?

Share this post


Link to post
Share on other sites

показывайте полный запрос и код, который его формирует.

Share this post


Link to post
Share on other sites

это все тело его

SELECT p.product_id, IF (p.price = '0', (SELECT MIN(ppr.price) FROM oc_product as ppr, oc_product_product_option_value as ppov WHERE ppov.product_option_id = ppr.product_id AND ppov.product_id = p.product_id), p.price) as new_price, (SELECT COUNT(ppov2.product_option_id) FROM oc_product_product_option_value as ppov2 WHERE p.product_id = ppov2.product_option_id) as child, (SELECT AVG(rating) AS total FROM oc_review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating 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) WHERE pd.language_id = '2' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' GROUP BY p.product_id HAVING child = '0' ORDER BY p.date_added DESC LIMIT 0,6

а вот тот код который его формирует, с этим немного затрудняюсь, дело в том что он появляется когда в категорию переходишь, или когда на главную заходишь, где смотреть? oc_category.tpl? Если напрямую в товар все ок.

Share this post


Link to post
Share on other sites

А откуда такой запрос взялся? Это в ядре 0_о

 

Ну, по делу, индекс для price первым делом создать, чтобы запрос 

SELECT MIN(ppr.price) FROM oc_product as ppr, oc_product_product_option_value as ppov WHERE ppov.product_option_id = ppr.product_id AND ppov.product_id = p.product_id

резвее работал. Потом надо что-то думать в направлении

SELECT COUNT(ppov2.product_option_id) FROM oc_product_product_option_value as ppov2 WHERE p.product_id = ppov2.product_option_id

Например, можно попробовать увеличить буфер MySQL сервера...

 

Вот это тоже печально (если отзывов много) и непонятно насколько полезна информация:

SELECT AVG(rating) AS total FROM oc_review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id

MySQL в подзапросах лимиты не поддерживает, кажется... Да? Тогда все плохо.

Share this post


Link to post
Share on other sites

в ядре такого точно нет

 

 

SELECT p.product_id, IF (p.price = '0', (SELECT MIN(ppr.price) FROM oc_product as ppr, oc_product_product_option_value as ppov WHERE ppov.product_option_id = ppr.product_id AND ppov.product_id = p.product_id), p.price) as new_price, (SELECT COUNT(ppov2.product_option_id) FROM oc_product_product_option_value as ppov2 WHERE p.product_id = ppov2.product_option_id) as child, (SELECT AVG(rating) AS total FROM oc_review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating 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) WHERE pd.language_id = '2' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' GROUP BY p.product_id HAVING child = '0' ORDER BY p.date_added DESC LIMIT 0,6

Share this post


Link to post
Share on other sites
Например, можно попробовать увеличить буфер MySQL сервера...

Это как себе в живот запихнуть полтонны апельсинов. То есть, рано или поздно начнет болеть или хуже ...

в данном случае хуже будет)

Что за гавно-сборку скачали на этот раз?

Качайте ocstore и проблемы исчезнут

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Это модуль подтоваров. 80000 к товаров и все сыпится к матери. когда модуль выключаешь работает более или менее. 

Share this post


Link to post
Share on other sites

Join the conversation

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

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  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.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.