Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Долго прогружается сайт - не пойму почему


Recommended Posts

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

 

сайт:

http://equip-trade.com/

 

не могу понять почему тормоза на сайте такие сильные. Долго подгружается сайт, категории и товары!

 

Не могу пока понять, в чем конкретно может быть причина!?

 

Грешу больше на базу данных mysql, так как если сделать запрос к стандартному гугл сайтмап:

http://equip-trade.com/index.php?route=extension/feed/google_sitemap

то сайт просто подвисает и через некоторое время ошибка появляется 504 и т.д. Причем при запросе к сайтмап. если что-то просто нажать в админке, то аналогично все виснет и через некоторое время и там и там 504 ошибка!

 

Плюс если переходить на конкретный товар, то вроде быстро переходит, но если переходить в категории в которых много товаров, то скорость загрузки просто ужасная!!!

 

Подскажите пожалуйста, в чем может быть причина!?) Правильная ли я подозреваю, что косяк в mysql или же в чем-то еще!?)

Link to post
Share on other sites

Полная жесть, 6 секунд TTFB
Полный "суп-набор" Journal 2

 

1498401692.jpg

Link to post
Share on other sites

с таким кол-вом товаров и категорий конечно нужна оптимизация

стандартный гугл сайтмап тоже это кол-во не потянет

Link to post
Share on other sites
11 минут назад, MFX сказал:

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

 

сайт:

http://equip-trade.com/

 

не могу понять почему тормоза на сайте такие сильные. Долго подгружается сайт, категории и товары!

 

Не могу пока понять, в чем конкретно может быть причина!?

 

Грешу больше на базу данных mysql, так как если сделать запрос к стандартному гугл сайтмап:

http://equip-trade.com/index.php?route=extension/feed/google_sitemap

то сайт просто подвисает и через некоторое время ошибка появляется 504 и т.д. Причем при запросе к сайтмап. если что-то просто нажать в админке, то аналогично все виснет и через некоторое время и там и там 504 ошибка!

 

Плюс если переходить на конкретный товар, то вроде быстро переходит, но если переходить в категории в которых много товаров, то скорость загрузки просто ужасная!!!

 

Подскажите пожалуйста, в чем может быть причина!?) Правильная ли я подозреваю, что косяк в mysql или же в чем-то еще!?)

 

Начните с обновления ocfilter.
Он в последней версии быстрый.

Link to post
Share on other sites

12 минут назад, markimax сказал:

Полная жесть, 6 секунд TTFB
Полный суп-набор Journal 2

 

1498401692.jpg

 

Тема july использована с ее пакетом входящих дополнений! Из дополнительных модулей: фильтр товаров OCFilter, Простая регистрация и заказ Simple, поиск Ajax Live Search, 14 дневная CSV Price Pro import/export 4. Более ничего нет! Все установлено на чистый движок.

 

По этому и стало интересно, почему может тормозить!

 

"6 секунд TTFB это быстро" - я про товар имел ввиду!) Категории тоже тормозят!))

Edited by MFX
Link to post
Share on other sites

4 минуты назад, Yoda сказал:

 

Начните с обновления ocfilter.
Он в последней версии быстрый.

Мне примерно месяц назад автор модуля его устанавливал, вроде последнюю версию!) Но тут на главной тормозит жуть, не доходя до модуля!

Link to post
Share on other sites

2 минуты назад, MFX сказал:

Мне примерно месяц назад автор модуля его устанавливал, вроде последнюю версию!) Но тут на главной тормозит жуть, не доходя до модуля!

Fatal error Stack trace: #0 /home/..../public_html/system/lightning/beta.php(1)

Может lightning  лицензию  с фронта запрашивает
Там в теме автор писал что нашел критичный баг - срочно обновиться

Link to post
Share on other sites
9 минут назад, MFX сказал:

По этому и стало интересно, почему может тормозить!

Да, главная тоже тормозит безбожно

 

Спойлер

6552199163.jpg

 

Link to post
Share on other sites
4 минуты назад, markimax сказал:

Fatal error Stack trace: #0 /home/..../public_html/system/lightning/beta.php(1)

Может lightning  лицензию  с фронта запрашивает
Там в теме автор писал что нашел критичный баг - срочно обновиться

Автор отписал что там тестовая версия, она еще 6 дней должна работать(так как вчера было 7 дней зелененьких)

Я его только вчера устанавливал, так как написано было что оптимизирует сайт. Но хренушки, сайт как работал без него, так и с ним же работает одинаково долго! Да и я его отключил, так как он начал ошибки выдавать при переходах в категории и товары(ну и на главной то появлялись ошибки, то нет) - в итоге я решил его не включать!)

 

Так же установил: Minify

 

Но с его сжатием css и js тоже никакого результата не получил!

 

Link to post
Share on other sites

4 минуты назад, markimax сказал:

Да, главная тоже тормозит безбожно

 

  Скрыть контент

6552199163.jpg

 

Это я еще картинки урезал. До этого 5-8 секунд было!) Все вроде сделал, чтобы ускорить загрузку. Но все равно, неважно что делаю, тормоза остаются одинаковыми. По этому и грешу на mysql

Edited by MFX
Link to post
Share on other sites

47 минут назад, MFX сказал:

Это я еще картинки урезал. До этого 5-8 секунд было!) Все вроде сделал, чтобы ускорить загрузку. Но все равно, неважно что делаю, тормоза остаются одинаковыми. По этому и грешу на mysql

 

Причин может быть десятки. Из потенциальных проблем вы не учли и половины.
К примеру я сегодня видел в магазин, в котором 3.5 секунды на очень хорошем сервере выедала очень смешная, я бы сказал детская ошибка, возникшая из-за того что народ бездумно тащит чужой код, не понимая что в нем. Скопипастить скопипастили, а вот понять что скопипастили - не получилось. 

 

Пару недель назад в магазине на одном очень популярном шаблоне  возникла проблема с полным падением системы. Когда начали смотреть, оказалась фатальное стечение обстоятельств - из 1с приехала отрицательный параметр в таблицу категорий и при формировании дерева меню через for!  (не foreach)  попытка построить набор уходила в бесконечный цикл. Вероятность что код шаблона с использованием for  и инкрементального индекса пересечется с косыми данными из 1с - стремится к нулю. Однако трое суток ушло на выявление причин.

 

UPD - я тут немного помониторил ваш магазин. 
Он не линейно тупит - явно либо нестабильно работает хостинг, либо у сервера исчерпываются ресурсы.

И скорее всего таки да вы правы это база.
А почему так - потому что у вас в категории нейтральное оборудование к примеру 6 к товаров (Показано с 1 по 25 из 6169 (всего 247 страниц)) а для одной категории - это очень много, так как при выборке данных идет обьединение 5-7 таблиц и потом сортировка по lcase(pd.name) - соответсвенно осуществляется проход по всем записям таблицы product_description и особо тут индексами не поможешь.

Точнее поможешь, но это не точно.

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

Link to post
Share on other sites

Для начала, установите какой-нибудь отладчик MySQL запросов (вложил свой). 4-6к товаров в категории далеко не критичная масса.

Да, самые прожорливые запросы окажутся такого вида

 

Спойлер

SELECT p.product_id,
(SELECT AVG(rating) AS total
FROM review r1
WHERE
   r1.product_id = p.product_id AND
   r1.status = '1'
GROUP BY r1.product_id)
 AS rating,
(SELECT price
FROM product_discount pd2
WHERE
   pd2.product_id = p.product_id AND
   pd2.customer_group_id = '1' AND
   pd2.quantity = '1' AND
   ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND
   (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW()))
ORDER BY pd2.priority ASC, pd2.price ASC
LIMIT 1)
 AS discount,
(SELECT price
FROM product_special ps
WHERE
   ps.product_id = p.product_id AND
   ps.customer_group_id = '1' AND
   ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND
   (ps.date_end = '0000-00-00' OR ps.date_end > NOW()))
ORDER BY ps.priority ASC, ps.price ASC
LIMIT 1)
 AS special
FROM product_to_category p2c
LEFT JOIN product p ON (p2c.product_id = p.product_id)
LEFT JOIN product_description pd ON (p.product_id = pd.product_id)
LEFT JOIN product_to_store p2s ON (p.product_id = p2s.product_id)
WHERE
   pd.language_id = '1' AND
   p.status = '1' AND
   p.date_available <= NOW() AND
   p2s.store_id = '0' AND
   p2c.category_id = '64'
GROUP BY p.product_id
ORDER BY p.sort_order ASC, LCASE(pd.name) ASC
LIMIT 0,18

 

 

но выполнятся они должны в нормальных условиях до 0,4 сек, а таких запросов на подгрузку страницы категории - до 2-х.

 

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

И еще, это может быть разросшийся файл логов или кэша. Удалите файлы логов и кэша.

Отладка нужна.

 

 

query-log-opencart-2.zip

Link to post
Share on other sites
42 минуты назад, SooR сказал:

Для начала, установите какой-нибудь отладчик MySQL запросов (вложил свой). 4-6к товаров в категории далеко не критичная масса.

Да, самые прожорливые запросы окажутся такого вида

 

  Скрыть контент


SELECT p.product_id, 
(SELECT AVG(rating) AS total 
FROM vk_review r1 
WHERE
   r1.product_id = p.product_id AND
   r1.status = '1' 
GROUP BY r1.product_id)
 AS rating, 
(SELECT price 
FROM vk_product_discount pd2 
WHERE
   pd2.product_id = p.product_id AND
   pd2.customer_group_id = '1' AND
   pd2.quantity = '1' AND
   ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND
   (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) 
ORDER BY pd2.priority ASC, pd2.price ASC 
LIMIT 1)
 AS discount, 
(SELECT price 
FROM vk_product_special ps 
WHERE
   ps.product_id = p.product_id AND
   ps.customer_group_id = '1' AND
   ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND
   (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) 
ORDER BY ps.priority ASC, ps.price ASC 
LIMIT 1)
 AS special 
FROM vk_product_to_category p2c 
LEFT JOIN vk_product p ON (p2c.product_id = p.product_id) 
LEFT JOIN vk_product_description pd ON (p.product_id = pd.product_id) 
LEFT JOIN vk_product_to_store p2s ON (p.product_id = p2s.product_id) 
WHERE
   pd.language_id = '1' AND
   p.status = '1' AND
   p.date_available <= NOW() AND
   p2s.store_id = '0' AND
   p2c.category_id = '64' 
GROUP BY p.product_id 
ORDER BY p.sort_order ASC, LCASE(pd.name) ASC 
LIMIT 0,18

 

 

но выполнятся они должны в нормальных условиях до 0,4 сек, а таких запросов на подгрузку страницы категории - до 2-х.

 

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

Еще вопрос - а в админке как?

И еще, это может быть разросшийся файл логов или кэша. Удалите файлы логов и кэша.

Отладка нужна.

 

 

query-log-opencart-2.zip

6к товаров с зажатыми key-buffer и sort_buffer, с заполненной таблицей discount и на общем количестве в 20-25к записей в таблицах товаров - это не 0.4, а 2-3-4.

Link to post
Share on other sites

А какой модуль есть, с автоматической генерацией урлов!? А то ручками там очень много надо товаров(категорий и производителей) придется редактировать...

 

вопрос: Если установить модуль подгрузки товаров при скролинге(а не как сейчас переключением страниц) - это может помочь(сократит ли обращения к базе!?!?

 

Попробовал еще пару действий, вроде по шустрее стал работать сайт(хотя может мне это только кажется, так как весь день насилую себя и сайт) - Посмотрите пожалуйста, стал ли сайт быстрее загружаться!?)

Link to post
Share on other sites

1 час назад, SooR сказал:

Для начала, установите какой-нибудь отладчик MySQL запросов (вложил свой).

  Показать контент


SELECT p.product_id,
(SELECT AVG(rating) AS total
FROM review r1
WHERE
   r1.product_id = p.product_id AND
   r1.status = '1'
GROUP BY r1.product_id)
 AS rating,
(SELECT price
FROM product_discount pd2
WHERE
   pd2.product_id = p.product_id AND
   pd2.customer_group_id = '1' AND
   pd2.quantity = '1' AND
   ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND
   (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW()))
ORDER BY pd2.priority ASC, pd2.price ASC
LIMIT 1)
 AS discount,
(SELECT price
FROM product_special ps
WHERE
   ps.product_id = p.product_id AND
   ps.customer_group_id = '1' AND
   ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND
   (ps.date_end = '0000-00-00' OR ps.date_end > NOW()))
ORDER BY ps.priority ASC, ps.price ASC
LIMIT 1)
 AS special
FROM product_to_category p2c
LEFT JOIN product p ON (p2c.product_id = p.product_id)
LEFT JOIN product_description pd ON (p.product_id = pd.product_id)
LEFT JOIN product_to_store p2s ON (p.product_id = p2s.product_id)
WHERE
   pd.language_id = '1' AND
   p.status = '1' AND
   p.date_available <= NOW() AND
   p2s.store_id = '0' AND
   p2c.category_id = '64'
GROUP BY p.product_id
ORDER BY p.sort_order ASC, LCASE(pd.name) ASC
LIMIT 0,18

 

Отладка нужна.

 

 

query-log-opencart-2.zip

Установил.)

 

1 час назад, SooR сказал:

И еще, это может быть разросшийся файл логов или кэша. Удалите файлы логов и кэша.

Отладка нужна.

Чистильщик кэша и логов  установил его, вроде чистит все!)

 

 

Link to post
Share on other sites

7 минут назад, MFX сказал:

Установил.)

Что показывает (на фронте, в подвале, будучи залогиненым в админке)?

Link to post
Share on other sites

Вот сейчас с хрома кто-то(не я) проверял эту ссылку http://equip-trade.com/index.php?route=extension/feed/google_sitemap

Обрабатывался запрос 362 секунды и потом ушел в ошибку.

 

Аналогично у меня при переходе что на http://equip-trade.com/index.php?route=extension/feed/google_sitemap  что на http://equip-trade.com/index.php?route=extension/feed/yandex_sitemap

Тоже виснет и в ошибку уводит!

 

Вопрос, а может тут есть связь!?

Link to post
Share on other sites

2 минуты назад, SooR сказал:

Что показывает (на фронте, в подвале, будучи залогиненым в админке)?

А где именно!? Просто в админке ничего не показывает, в модуле фильтра тоже. Где смотреть уж!?)

Link to post
Share on other sites

Только что, MFX сказал:

А где именно!? Просто в админке ничего не показывает, в модуле фильтра тоже. Где смотреть уж!?)

 

Под футером, на главной странице сайта, например.

Link to post
Share on other sites

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

Link to post
Share on other sites
32 минуты назад, SooR сказал:

 

Под футером, на главной странице сайта, например.

 

Все содержимое надо скинуть или только количество запросов со временем!? (попробовал все содержимое скинуть, на меня форум заругался и не давал ничего сделать, пока куки не почистил)

 

Главная:

Всего запросов: 678, общее время запросов: 1.154 сек.

 

Категория:

Всего запросов: 317, общее время запросов: 1.093 сек.

 

Подкатегория:

Всего запросов: 310, общее время запросов: 0.246 сек.

 

Товар:

Всего запросов: 394, общее время запросов: 0.268 сек.

 

Статья:

Всего запросов: 39, общее время запросов: 0.028 сек.

 

Обратно в категорию:

Всего запросов: 678, общее время запросов: 1.035 сек.

 

Link to post
Share on other sites

4 минуты назад, MFX сказал:

 

 

Главная:


Всего запросов: 678, общее время запросов: 1.154 сек.

 

 

Измеряют в бразуере
Кликните F12 - таб  Cеть

 

Главная - 2.5 с

 

7711222990.jpg

Link to post
Share on other sites
39 минут назад, SooR сказал:

 

Под футером, на главной странице сайта, например.

Вот эти 3 штуки получились самыми тяжелыми:

 

Спойлер

0.183 сек.
SELECT p.product_id, 
(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,

(SELECT price
FROM oc_product_discount pd2
WHERE
  
pd2.product_id = p.product_id AND
   pd2.customer_group_id = '1' AND
   pd2.quantity = '1' AND
   ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND
   (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW()))
ORDER BY pd2.priority ASC, pd2.price ASC
LIMIT 1)

AS discount,

(SELECT price
FROM oc_product_special ps
WHERE
  
ps.product_id = p.product_id AND
   ps.customer_group_id = '1' AND
   ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND
   (ps.date_end = '0000-00-00' OR ps.date_end > NOW()))
ORDER BY ps.priority ASC, ps.price ASC
LIMIT 1)

AS special
FROM oc_product_to_category p2c
LEFT JOIN oc_product p ON (p2c.product_id = p.product_id)
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 = '1' AND
   p.status = '1' AND
   p.date_available <= NOW() AND
   p2s.store_id = '0' AND
   p2c.category_id = '146'
GROUP BY p.product_id
ORDER BY LCASE(pd.name) ASC, LCASE(pd.name) ASC
LIMIT 0,1


0.127 сек.
SELECT p.product_id, 
(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,

(SELECT price
FROM oc_product_discount pd2
WHERE
  
pd2.product_id = p.product_id AND
   pd2.customer_group_id = '1' AND
   pd2.quantity = '1' AND
   ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND
   (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW()))
ORDER BY pd2.priority ASC, pd2.price ASC
LIMIT 1)

AS discount,

(SELECT price
FROM oc_product_special ps
WHERE
  
ps.product_id = p.product_id AND
   ps.customer_group_id = '1' AND
   ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND
   (ps.date_end = '0000-00-00' OR ps.date_end > NOW()))
ORDER BY ps.priority ASC, ps.price ASC
LIMIT 1)

AS special
FROM oc_product_to_category p2c
LEFT JOIN oc_product p ON (p2c.product_id = p.product_id)
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 = '1' AND
   p.status = '1' AND
   p.date_available <= NOW() AND
   p2s.store_id = '0' AND
   p2c.category_id = '68'
GROUP BY p.product_id
ORDER BY LCASE(pd.name) ASC, LCASE(pd.name) ASC
LIMIT 0,1


0.105 сек.
SELECT p.product_id, 
(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,

(SELECT price
FROM oc_product_discount pd2
WHERE
  
pd2.product_id = p.product_id AND
   pd2.customer_group_id = '1' AND
   pd2.quantity = '1' AND
   ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND
   (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW()))
ORDER BY pd2.priority ASC, pd2.price ASC
LIMIT 1)

AS discount,

(SELECT price
FROM oc_product_special ps
WHERE
  
ps.product_id = p.product_id AND
   ps.customer_group_id = '1' AND
   ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND
   (ps.date_end = '0000-00-00' OR ps.date_end > NOW()))
ORDER BY ps.priority ASC, ps.price ASC
LIMIT 1)

AS special
FROM oc_product_to_category p2c
LEFT JOIN oc_product p ON (p2c.product_id = p.product_id)
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 = '1' AND
   p.status = '1' AND
   p.date_available <= NOW() AND
   p2s.store_id = '0' AND
   p2c.category_id = '65'
GROUP BY p.product_id
ORDER BY LCASE(pd.name) ASC, LCASE(pd.name) ASC
LIMIT 0,1

 

Link to post
Share on other sites

ТС - заходите в раздел услуги

И там

Раз

Два

 

 

У меня сейчас временная пиковая загрузка

Остается только @snastik
Направление дал

Link to post
Share on other sites
9 минут назад, MFX сказал:

Вот эти 3 штуки получились самыми тяжелыми:

 

  Скрыть контент


0.183 сек.
SELECT p.product_id, 
(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,

(SELECT price
FROM oc_product_discount pd2
WHERE
  
pd2.product_id = p.product_id AND
   pd2.customer_group_id = '1' AND
   pd2.quantity = '1' AND
   ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND
   (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW()))
ORDER BY pd2.priority ASC, pd2.price ASC
LIMIT 1)

AS discount,

(SELECT price
FROM oc_product_special ps
WHERE
  
ps.product_id = p.product_id AND
   ps.customer_group_id = '1' AND
   ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND
   (ps.date_end = '0000-00-00' OR ps.date_end > NOW()))
ORDER BY ps.priority ASC, ps.price ASC
LIMIT 1)

AS special
FROM oc_product_to_category p2c
LEFT JOIN oc_product p ON (p2c.product_id = p.product_id)
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 = '1' AND
   p.status = '1' AND
   p.date_available <= NOW() AND
   p2s.store_id = '0' AND
   p2c.category_id = '146'
GROUP BY p.product_id
ORDER BY LCASE(pd.name) ASC, LCASE(pd.name) ASC
LIMIT 0,1



0.127 сек.
SELECT p.product_id, 
(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,

(SELECT price
FROM oc_product_discount pd2
WHERE
  
pd2.product_id = p.product_id AND
   pd2.customer_group_id = '1' AND
   pd2.quantity = '1' AND
   ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND
   (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW()))
ORDER BY pd2.priority ASC, pd2.price ASC
LIMIT 1)

AS discount,

(SELECT price
FROM oc_product_special ps
WHERE
  
ps.product_id = p.product_id AND
   ps.customer_group_id = '1' AND
   ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND
   (ps.date_end = '0000-00-00' OR ps.date_end > NOW()))
ORDER BY ps.priority ASC, ps.price ASC
LIMIT 1)

AS special
FROM oc_product_to_category p2c
LEFT JOIN oc_product p ON (p2c.product_id = p.product_id)
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 = '1' AND
   p.status = '1' AND
   p.date_available <= NOW() AND
   p2s.store_id = '0' AND
   p2c.category_id = '68'
GROUP BY p.product_id
ORDER BY LCASE(pd.name) ASC, LCASE(pd.name) ASC
LIMIT 0,1



0.105 сек.
SELECT p.product_id, 
(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,

(SELECT price
FROM oc_product_discount pd2
WHERE
  
pd2.product_id = p.product_id AND
   pd2.customer_group_id = '1' AND
   pd2.quantity = '1' AND
   ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND
   (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW()))
ORDER BY pd2.priority ASC, pd2.price ASC
LIMIT 1)

AS discount,

(SELECT price
FROM oc_product_special ps
WHERE
  
ps.product_id = p.product_id AND
   ps.customer_group_id = '1' AND
   ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND
   (ps.date_end = '0000-00-00' OR ps.date_end > NOW()))
ORDER BY ps.priority ASC, ps.price ASC
LIMIT 1)

AS special
FROM oc_product_to_category p2c
LEFT JOIN oc_product p ON (p2c.product_id = p.product_id)
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 = '1' AND
   p.status = '1' AND
   p.date_available <= NOW() AND
   p2s.store_id = '0' AND
   p2c.category_id = '65'
GROUP BY p.product_id
ORDER BY LCASE(pd.name) ASC, LCASE(pd.name) ASC
LIMIT 0,1

 

 

Это нормально это getProducts и getTotalProducts и это нормальный результат.
Но - я вам в личку написал что надо сделать это раз.
Два есть процессы, которые не связаны с Mysql и профайлер их не выловит.
У вас явное их наличие налицо и я вам опять же рассказал как с ними бороться в комплексе.

Три 6000 товаров, как я люблю 6000 товаров на категорию.
Это же путь магазина в вальгаллу. Можно приложить магазин навсегда. Ни один ddos guard не спасет.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Similar Content

    • By Slavik7
      Добрый вечер!
       
      Уже неделю не могу решить вопрос с сортировкой товаров. Нужно чтобы при любой стандартной сортировке, товары со статусом "нет в наличии" были в самом конце.
       
      Нашел много статей на эту тему, но для 2 версии OpenCart. Для 3-й же версии нашел всего лишь парочку статей. Но все эти решения не дали результат.
       
      Думаю для знающих и разбирающихся в php и MySql это довольно легкая задача. Буду благодарен если поможете в этом вопросе.
    • By AlexMax13
      Предлагаю составить список таблиц в БД, которые время от времени желательно очищать.
       
       
      Данные действия рекомендуется выполнять для больших сайтов с множеством клиентов. Ну или тех, которые годами не подозревали что у них есть БД и сайт начинает тормозить.
       
      Если знаете что еще можно очистить - дополняйте. Только хотя бы в двух словах опишите что предлагаете очистить.
    • By MaJIon
      Здравствуйте, можно ли как-то соединить эти запросы таким образом, чтобы через post передавать нужные параметры и эти запрос как-то фильтровать в зависимости от клика по кнопке + или - 

       
      public function updateLike($product_id) { $this->db->query("SELECT * FROM " . DB_PREFIX . "product SET like_count = (like_count - 1) WHERE product_id = '" . (int)$product_id . "'"); } public function updateLikeMinus($product_id) { $this->db->query("UPDATE " . DB_PREFIX . "product SET like_count = (like_count - 1) WHERE product_id = '" . (int)$product_id . "'"); } public function updateLikePlus($product_id) { $this->db->query("UPDATE " . DB_PREFIX . "product SET like_count = (like_count + 1) WHERE product_id = '" . (int)$product_id . "'"); }  
    • By Krasulin
      Добрый день, кто может качественно оптимизировать MySQL, хостер пишет что медленная загрузка сайта может бить из-за БД. Так ли это ?
      "заметили на сервере в процессах постоянно работающий процесс mysql, который грузит на 100+% постоянно, возможно время отклика каким то образом связано с работой базы данных"
    • By sv2109
      Скачать/Купить дополнение


      SQL менеджер SQL Buddy
      SQL Buddy это простой sql менеджер. Намного проще но и намного легче phpMyAdmin-a
      С помощью него можно:
      создавать базы данных
      создавать, редактировать, удалять таблицы
      изменять структуру таблиц
      изменять данные в таблицах
      выполнять sql запросы
      делать импорт и экспорт таблиц
      итд

      + мульти язычный интерфейс (поддерживает 47 языков включая русский и украинский)
      Перед использованием настоятельно рекомендую сделать копию базы данных!
      Работает на :
      - ocstore 1.5.4.1
      - opencart 1.5.5.1
      но скорее всего будет работать на всех 1.5.x версиях движка
      Возможно вас заинтересуют другие модули автора
      Добавил sv2109 Добавлено 27.07.2013 Категория Обмен данными Системные требования Метод активации Ioncube Loader OpenCart ocStore OpenCart.Pro, ocShop Обращение к серверу разработчика Старая цена  
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

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.