Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Ускорение количества товаров как


Recommended Posts

Можно ли в Opencart (в идеале интересует на базе OC store 2.3) сделать вывод кол-ва товаров в категориях (в ссылках на категории), чтобы магазин не тормозил?
Или это структурно в Опенкарт невозможно? Я в других движках такую функцию включал и ничего не тормозило при тысячах товаров и сотнях категорий, а тут катастрофа.
Может быть кто-то знает решение?

Надіслати
Поділитися на інших сайтах


12 minutes ago, MisterSmile said:

Можно ли в Opencart (в идеале интересует на базе OC store 2.3) сделать вывод кол-ва товаров в категориях (в ссылках на категории), чтобы магазин не тормозил?

можно.

 

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

- более продвинутым будет некоторое упрощение\оптимизация sql-запроса, отвечающего за выборку пачки товаров внутри категорий и их пагинацию (getProducts). Вот тут, например, можно прочитать.

- свой VPS с выделенными ресурсами так же имеет значение. На шаред-хостинге стабильно получать хорошие результаты почти невозможно.

- ну а если уже никакие индексы не помогают, сервер хорош, и у Вас 50к+ товаров в одной категории, то наиболее эффективным и наиболее дорогим будет вариант смены основного хранилища данных (sphinx, например) или его реструктуризация с денормализацией таблиц. Эти решения позволяют делать выборку товаров за десятые или даже сотые доли секунды. Минусы: нужен компетентный и недешевый специалист; изменится модель и запросы для работы с каталогом и потребуется адаптация фильтра, скорее всего.

Надіслати
Поділитися на інших сайтах

36 минут назад, 100napb сказал:

можно.

 

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

 

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

Надіслати
Поділитися на інших сайтах


9 minutes ago, MisterSmile said:

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

если готовый вариант, то можете использовать какой-нибудь модуль кэширования. Тот же jetcache, например. Либо, за некоторую сумму можете поискать исполнителей на банальные this->cache-> set() + this->cache->get() вокруг результатов подсчета или даже на какую-нибудь оптимизацию самого запроса, что бы и "на холодную", без результата в кэше, было быстро

Надіслати
Поділитися на інших сайтах

Я правильно понимаю, что модуль jetcache позволит включить эту опцию, и при этом не будет этих жутких тормозов(кучи запросов к БД)?

Надіслати
Поділитися на інших сайтах


1 час назад, 100napb сказал:

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

 

 

И вы сказали кэшировать и оптимизировать.
С кэшировать понятно.
А оптимизировать какой-то простой способ есть? Или самый простой это переписывать запросы так как по ссылке что вы приводили тут

Надіслати
Поділитися на інших сайтах


24 minutes ago, MisterSmile said:

jetcache позволит включить эту опцию, и при этом не будет этих жутких тормозов(кучи запросов к БД)?

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

 

18 minutes ago, MisterSmile said:

А оптимизировать какой-то простой способ есть?

Что бы в два клика и бесплатно ?)) я таких не знаю. По приведенной выше ссылке самое простое и весьма эффективное решение предлагал Soor: подключать к запросу вычисления рейтингов, акционных цен и прочего только по требованию-необходимости, оставив в выборке запроса только product_id. При некотором понимании сути это реализовать не сложно. Да, надо переписывать запрос и править код.

 

Если не собираетесь качать скилл и разбираться в программировании и основах "подкапотной" работы, то проще всего нанять специалиста, на мой взгляд. Самолечением без компетенций Вы рискуете навредить себе и своему магазину или усложнить его дальнейшее обслуживание\администрирование. Впрочем, решать Вам...

 

 

  • +1 1
Надіслати
Поділитися на інших сайтах

1 час назад, 100napb сказал:

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


По идее если оно кэшируется при проходе робота поисковика, то достаточно дать пауку побегать 1 день по сайту и все закешируется и тормозов не будет.

Верно?

Надіслати
Поділитися на інших сайтах


1 час назад, 100napb сказал:

Что бы в два клика и бесплатно ?)) я таких не знаю. По приведенной выше ссылке самое простое и весьма эффективное решение предлагал Soor: подключать к запросу вычисления рейтингов, акционных цен и прочего только по требованию-необходимости, оставив в выборке запроса только product_id. При некотором понимании сути это реализовать не сложно. Да, надо переписывать запрос и править код.

 

Про бесплатно речи нет.
Простым решением я имею ввиду готовый модуль, который данную проблему решает.

Надіслати
Поділитися на інших сайтах


кэш имеет свойство устаревать\инвалидироваться. В опенкарте кэш из коробки имеет глобальное время жизни, которое по-умолчанию 1 час. Разумеется, Вы можете установить время его жизни хоть 1 год, но с таким же успехом можно кэшировать страницы сайта целиком и показывать их клиентам как набор статических html-страниц. Супер-быстро *сарказм*

Иными словами, для большинства ситуаций это такое себе решение - устанавливать длительное время жизни кэша. То же самое касается jetcache и любого иного модуля-кэшера: после добавления новых товаров, изменения структуры категорий, введения или изменение атрибутов или опций - все это ведет к тому, что рассчитанные и сохраненные вычисления в кэше становятся неактуальными и должны быть удалены\пересчитаны\закэшированы повторно.

12 minutes ago, MisterSmile said:

достаточно дать пауку побегать 1 день по сайту и все закешируется и тормозов не будет.

Верно?

Потому нет, не верно. Кэширование - это отличный прием. Но это должно быть "последней линией обороны", а не первичной(единственной) оптимизацией. В противном случае, быстрые страницы из кэша - это в какой-то мере просто попытка спрятать медленный магазин

Spoiler

фальшфасад

 

image.thumb.png.f5bcaaeaa35f632dcb7c92607dc972cf.png

 

Надіслати
Поділитися на інших сайтах

1 час назад, 100napb сказал:

Потому нет, не верно. Кэширование - это отличный прием. Но это должно быть "последней линией обороны", а не первичной(единственной) оптимизацией. В противном случае, быстрые страницы из кэша - это в какой-то мере просто попытка спрятать медленный магазин

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

фальшфасад

 

image.thumb.png.f5bcaaeaa35f632dcb7c92607dc972cf.png

 

 

Спасибо, вы очень все понятно объясняете.
Вот интересно тогда, а можно ли как-нибудь сделать, чтобы кэш обновлялся именно при загрузке страниц роботом поисковика, ему-то пофиг ждать ли 10-20 сек страницу, он пусть бы и ждал и цифры бы пересчитывались, а пользователю уже быстро доставались бы из кэша.

Надіслати
Поділитися на інших сайтах


22 minutes ago, MisterSmile said:

чтобы кэш обновлялся именно при загрузке страниц роботом поисковика, ему-то пофиг ждать ли 10-20 сек страницу, он пусть бы и ждал

Поисковые пауки не будут столько времени ждать. У них миллионы миллионов сайтов кроме Вашего ещё на очереди. Факт: скорость и глубина индексации поисковиками зависит и от скорости работы сайта. Быстрый ответ сервера ценится и тут. Что так же не в пользу кэширования как единственной оптимизации

Надіслати
Поділитися на інших сайтах

Я знаю разные софтины, которые могут по сайту пробегать.
Может скрипт есть, который бы в крон поставить ночью и пусть бы он проходил по всем страницам и обновлял кэш. Ни у кого такой не завалялся?

 

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.