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

38 тыс товаров загрузил, сайт еле ползает

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

Существует решение проблемы с быстродействием?

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


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

Сконвертироть систему храния БД MySQL из MyISAM в InnoDB

Добавить индексы для всех внешних ключей

если opencart 2.3 можно врубить штатный мемкэш (у хостинга бегет как отдельная услуга очень даже хорошая)

 

прирост будет ощутимый (на практике с 20к товарами было все норм)

 

// ещё не забывать про нормальный хостинг с достаточным кол-вом ресурсов.

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


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

Сконвертироть систему храния БД MySQL из MyISAM в InnoDB

Это ничего не даст.

 

5 минут назад, ardashev06 сказал:

Добавить индексы для всех внешних ключей

ОК не использует внешние ключи.

Но индексы проверить таки надо, только не на несуществующих внешних ключах, а на полях, которые используются для джоинов и фильтрации выборок.

 

А ещё отключить подсчёт товаров в категориях и убедиться, что нет модулей с кривой логикой.

 

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


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

Существует решение проблемы с быстродействием?

вот

 

  • +1 1

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


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

а начинать надо с анализа а не с включения чего ни попадя

  • +1 1

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


Ссылка на сообщение
Поделиться на другие сайты
  1. Отключить подсчет товаров
  2. оптимизировать БД
  3. оптимизировать медленные запросы
  4. исправить ошибку
  5. поставить кешивроание

 

 

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


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, bitrixlviv сказал:
  1. Отключить подсчет товаров
  2. оптимизировать БД
  3. оптимизировать медленные запросы
  4. исправить ошибку
  5. поставить кешивроание

 

6. Поставить тему по умолчанию (я серьезно. Когда делается нагруженный проект, берется тема по умолчанию и переверстывается, чтобы не сделать из своего магазина г...фарш кода различных г.. модулей темы)
7. Снести все модули  "текущей" темы (проще заново развернуть чистый opencart)
8. С индексами аккуратнее, лишние индексы могут "запутать" оптимизатор MySQL и он может по ошибке использовать не те индексы в запросе,  можно словить тормоза и потом долго искать "почему"

:)

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


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

Если кто-то то готов решить проблему - пишите в личку.

Сайт на vds.

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


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

Если кто-то то готов решить проблему - пишите в личку.

Сайт на vds.

У меня расценки те же  :)

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


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

У меня расценки те же  :)

а чего в услуги не воткнёшь?

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


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

 

6. Поставить тему по умолчанию (я серьезно. Когда делается нагруженный проект, берется тема по умолчанию и переверстывается, чтобы не сделать из своего магазина г...фарш кода различных г.. модулей темы)

 

@SFS77 точно, например этот )
https://opencartforum.com/files/file/3126-next-default-3/

Потом ещё с такой кучей товаров нужно как то грамотно подпихивать чтобы в минуса не уйти например вот этим ))

 

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


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

ОК не использует внешние ключи.

а если конвертнуть в innoDB?

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


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

Просто для образования. Что дадут внешние ключи? В чем сакральный смысл их использования с точки зрения производительности запросов. Я их использую в качестве ссылочной целосности БД, но никаким образом к производительности они не относятся. Или я не прав?

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


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

офтоп

 

 

А это и есть их основная задача - целостность

Но наличие индекса не помешает..

пример

Все заказы от двух известных покупателей, с инфой о покупателях


SELECT * FROM `order` o JOIN customer c ON o.customer_id=c customer_id AND c.customer_id IN (5,6)


Но в ОС таких возможных запросов не очень много

 

 

 

 

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


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

Но наличие индекса не помешает..

пример

Все заказы от двух известных покупателей, с инфой о покупателях


SELECT * FROM `order` o JOIN customer c ON o.customer_id=c customer_id AND c.customer_id IN (5,6)


Но в ОС таких возможных запросов не очень много

 

 

Если заказов много и пользователей тоже от похожего реального запроса (чуть посложнее особенно с Group) сервер может "лечь"
Джойниться будет вся таблица ко всей таблице, в выдаче там где не будет выполнено условия джойна будет NULL и выборка будет большой
И по индексам будет filesort
Здесь надо Where c.customer_id IN (5,6) - тогда будут выводиться только для этих двух, и запрос будет быстрым так как выборка минимальна и будут использоваться индексы "правильно"
Лучше условий в Join не использовать
Но иногда без этого никуда :(
 

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


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

А где вы увидели что будет джойниться по всей таблице?

 

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

 

В стиле оракла это так

SELECT * FROM `order` o, customer c

WHERE o.customer_id=c customer_id

AND c.customer_id IN (5,6)

 



 

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


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

А где вы увидели что будет джойниться по всей таблице?

 

 

Да сорри, не заметил что это просто JOIN, а при LEFT JOIN -е "этот" запрос положил сервер мне на 10k заказах :)
 

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


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

начните с анализа запросов. 90% тормозов в базе, может у вас банально подсчет кол-ва товаров не отключен

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


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

Отключил счётчик товаров, стало получше, но всё равное ненормально

 

 

Рабочий стол 2017-09-20 13.28.30.png

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


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

Отключил счётчик товаров, стало получше, но всё равное ненормально

Так ... забудьте про Page Speed - это рекомендательный попугаеметр, не более
Он не измеряет скорость как таковую
Это сервис "помощи" в юзабилити
Скорость измеряют по TTFB через инспектор кода браузера

 

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


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

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

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

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

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

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

Войти

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

Войти

  • Последние посетители   0 пользователей онлайн

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

×

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

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