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

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

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

 

сайт:

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 не спасет.

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


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

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

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

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

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

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

Войти

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

Войти

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

    • От AndreyRr
      Генерируется много обращений к MySQL - превышаем лимиты на хостинге, и хостер ругается.
       
      С чем может быть связано, и можете посоветует кто-то толькового программиста кто может решить? (сам магазин небольшой, 300 товаров)
    • От 100napb
      Здравствуйте, уважаемые. Пропустим ту часть, в которой обсуждался бы вопрос откуда у Вас могут появиться всякие няшные смайлики. Скажу лишь, что лепить их направо и налево со всяких гаджетов любит каждый, в том числе, оставляя отзывы у Вас на сайте.
       
      Так вот, задался вопросом, как сохранить и не исказить все эти дорогие эмоции. Потому что ОпернКарт с ними не дружит. Для себя нашел следующие решение:
      Прежде всего, текст со смайлами или без них хранится в БД. Для этого данные должны быть в хипстерской кодировке utf8mb4. И сама БД ее должна поддерживать. Не у всех стоят последние версии Mysql, где все это работает не просто из коробки, а по умолчанию. Что бы перевести таблицу на кодировку с эмодзи выполним ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; где table_name заменяем на нужные таблицы. Можно и всю базу так заальтерить, но я чет очканул. Мне хватило таблиц oc_review и oc_comment (привет Markimax). Обновлять версию мускуля не обязательно. Если только он настолько старый, что о такой кодировке даже не знает. В настройках коннекта к БД опенкарта так же сменим кодировку: файл /system/library/db/mysqli.php,  $this->connection->set_charset("utf8mb4"); Вроде бы все... ах да, возможно, нужно менять параметры кодировки в файлах mpdo.php и mysql.php. Я менял. Может быть придется еще рестартануть службы. Под спойлером результат.  
      Может кому пригодиться.
      Ну и вопрос для сведущих: можно было как-то проще\грамотнее это сделать?
    • От Molovka
      Ошибки при установке шаблона, загружал шаблон неделю назад всё было хорошо, взял другой шаблон появилась ошибка

    • От Alewka1994
      Ребят как вывести минимальную цену из товаров в каждой из категорий. Типо товары от какой то цены. Не js только
    • От progroman
      Скачать/Купить дополнение


      Замена расширения mysql на mysqli
      Данное дополнение затрагивает только класс MySQL, интерфейс и функционал остаются прежними.
      В связи с потенциально слабыми местами в безопасности расширения mysql, разработчики настоятельно рекомендуют использовать PDO или MySQLi при использовании MySQL 4.1.3 или более поздней.
      С официального сайта PHP про расширение mysql (http://php.net/manua...intro.mysql.php):
      Стандартный класс был переписан, т. к. не удалось поставить старое расширение mysql для одной из последних версиий PHP.
      Важно! Перед установкой проверьте, стоит ли расширение mysqli.
      Добавил progroman Добавлено 17.01.2013 Категория Прочее  
  • Последние посетители   0 пользователей онлайн

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

×

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

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