Перейти к содержанию

Рекомендуемые сообщения

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

 

сайт:

http://equip-trade.com/

 

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

 

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

 

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

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

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

 

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

 

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

Поделиться сообщением


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

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

 

1498401692.jpg

Поделиться сообщением


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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
11 минут назад, MFX сказал:

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

 

сайт:

http://equip-trade.com/

 

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

 

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

 

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

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

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

 

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
12 минут назад, markimax сказал:

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

 

1498401692.jpg

 

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

 

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

 

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

Изменено пользователем MFX

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, Yoda сказал:

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, MFX сказал:

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
9 минут назад, MFX сказал:

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

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

 

Спойлер

6552199163.jpg

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, markimax сказал:

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

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

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

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

 

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

 

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, markimax сказал:

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

 

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

6552199163.jpg

 

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

Изменено пользователем MFX

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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 и особо тут индексами не поможешь.

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

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

Поделиться сообщением


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

Для начала, установите какой-нибудь отладчик 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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.

Поделиться сообщением


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

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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 сказал:

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

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

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 минут назад, MFX сказал:

Установил.)

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

Поделиться сообщением


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

Вот сейчас с хрома кто-то(не я) проверял эту ссылку 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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, SooR сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, MFX сказал:

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

 

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

Поделиться сообщением


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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
32 минуты назад, SooR сказал:

 

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

 

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

 

Главная:

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

 

Категория:

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

 

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

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

 

Товар:

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

 

Статья:

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

 

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, MFX сказал:

 

 

Главная:


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

 

 

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

 

Главная - 2.5 с

 

7711222990.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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

 

Поделиться сообщением


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

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

И там

Раз

Два

 

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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 не спасет.

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От Tinyled
      Добрый день, столкнулся с задачей, выборки данных из таблицы в бд
      сама задача состоит в том что бы получить из таблицы записи сгруппированные по телефону (phone), но перед этим отсортированные по дате (datetime DESC), при этом с лимитом в 200 записей (LIMIT 0,200)
      прошу помочь понять, как можно сформировать запрос к бд, дабы не нагружать сильно бд, и выполнить все условия.
      Или может быть я ошибаюсь, и конечную сортировку лучше делать на php?
      пробовал запросом 
      SELECT sends.* FROM (SELECT * FROM `oc_watsappchat_send` WHERE creator="" ORDER BY `id` DESC) as sends GROUP BY sends.phone ORDER BY `id` DESC LIMIT 0,200 но запрос выходит достаточно долгим, и как я понимаю при увеличении числа записей в таблице время будет также увеличиваться
    • От YaroslavFrolov
      Доброго времени суток. Помогите плиз, нужно данные из корзины вставить в письмо заказа. Обработчик не от опенкарт.
    • От TerranXXX
      Необходимо модифицировать CMS ocStore v2.3 (русский OpenCart 2.1) для работы с MS SQL Server 2012+.

      Обязательные требования:
      1. Взаимодействие CMS с БД должно происходить исключительно через хранимые процедуры (доступа к таблицам у CMS не будет)
      2. Часть логики из php нужно перенести в хранимые процедуры (например динамическое формирование запросов)

      В ответе сообщите срок и стоимость данной работы.
    • От Bistore
      Добрый день помогите выбрать добить модуль личных количественных скидок на каждого пользователя отдельно в ограниченном виде!
      Получается
      1) Можно сравнить количество скидок на товар и количество купленных товаров пользователей(только авторизованные будут) сравнивая по айди товара и купленого товара минусовать количество скидок от купленного товара и выводить есть ли скидочный товар или же нет( или какое количество осталось).
       
      2) Я вывел sql  запросом уже в пользователе количество скидочных товаров минус количество купленного товара по айди ----- и теперь нужно по айди сравнить купленный товар и товар связать и по полю kolichestvo которое получилось в пользователе смотреть Kol=>0 ? или меньше и тд  
      Как лучше сделать?
      Как связать купленный товар(этим пользователем)  и товар на сайте?
      В файле который добавил в этот вопрос есть код корзины где осуществил все (jan - это количество скидок на товар) 
      cart.php
    • От AndreyRr
      Генерируется много обращений к MySQL - превышаем лимиты на хостинге, и хостер ругается.
       
      С чем может быть связано, и можете посоветует кто-то толькового программиста кто может решить? (сам магазин небольшой, 300 товаров)
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.