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

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


Recommended Posts

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

Link to post
Share on other sites

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

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

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

 

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

 

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

Link to post
Share on other sites

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

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

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

 

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

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

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

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

 

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

 

Link to post
Share on other sites

38 минут назад, SFS77 сказал:

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

вот

 

  • +1 1
Link to post
Share on other sites

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

  • +1 1
Link to post
Share on other sites
  1. Отключить подсчет товаров
  2. оптимизировать БД
  3. оптимизировать медленные запросы
  4. исправить ошибку
  5. поставить кешивроание

 

 

Link to post
Share on other sites

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

 

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

:)

Link to post
Share on other sites

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

Сайт на vds.

Link to post
Share on other sites

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

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

Сайт на vds.

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

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

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

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

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

 

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

 

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

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

 

Link to post
Share on other sites
2 часа назад, Dotrox сказал:

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

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

Link to post
Share on other sites

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

Link to post
Share on other sites

офтоп

 

 

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

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

пример

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


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


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

 

 

 

 

Link to post
Share on other sites
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 не использовать
Но иногда без этого никуда :(
 

Link to post
Share on other sites

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

 

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

 

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

SELECT * FROM `order` o, customer c

WHERE o.customer_id=c customer_id

AND c.customer_id IN (5,6)

 



 

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

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

 

 

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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

 

 

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

Link to post
Share on other sites

11 минут назад, SFS77 сказал:

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

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

 

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
  • 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.