Тормозит Opencart часть 3 (кеш SeoPro)

Тормозит Opencart часть 3 (кеш SeoPro)

Ускоряем, ускоряем и еще раз ускоряем.

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

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

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

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

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

Для того чтобы отображать ЧПУ, Opencart, каждый раз при формировании человекопонятной ссылки обращается в базу данных с запросом для подстановки нормального адреса ссылки вместо системного. Т.е. если у вас на странице отображено 20-30 категорий, и какими нибудь модулями выведено еще 15-20 товаров, движку нужно сделать для формирования ссылки на каждый товар или категорию запрос в базу, и если на 100 товарах, и 20 категориях, к примеру, время выполнения этих запросов незаметно, то если у вас больше тысячи записей в таблице с псевдонимами ссылок, и вы выполните в эту таблицу 50-100 запросов, чтобы получить все адреса ссылок для страницы, то это уже будет ощутимо, и на дешевых хостингах может занимать от 200 миллисекунд.

Есть отличный способ избавиться от этих запросов. На форуме русского сообщества Opencart, необходимо скачать модификацию сео-контроллера SeoPro с кешированием для версии вашего движка. И включить в настройках магазина в разделе Server тип ЧПУ SeoPro. Внимание, эта доработка будет работать только на локализованных магазинах, разработанных на русской версии OpenCart — OcStore.

SeoPro — это контролер, отвечающий за генерацию ЧПУ, разработанный автором Yesvik, еще для версий 1.4.x. C выходом версии 1.5, он был включен в базовый дистрибутив русской версии OpenCart. В отличии от сео-контроллера, который идет с дистрибутивом с официального сайта Opencart.com, SeoPro, формирует абсолютно уникальные ссылки для категорий и товаров, полностью исключая дубли страниц.

Впоследствии этот контроллер был модифицирован автором Freelancer, который добавил в него кеширование запроса в базу данных для генерации ЧПУ.

Скачать SeoPro для актуальной версии движка вашего сайта вы можете здесь

UPD: от 3.11.2014

Как показала практика, кеширование алиасов, имеет смысл на магазинах до 4-5 тысяч товаров, на большем обьеме, изза алгоритма поиска в массиве кеша, и постоянной загрузке файла весов в несколько Mb, вся польза от этого процесса пропадает, так как MySql ищет быстрее.

Предыдущие статьи из цикла тормозит Opencart:
1 часть
2 часть

Хуйнаныр(7)Очко(0)

Запостить высер

Стучать мне на мыло
avatar

Сортировать:   Свежие | Тухлые | Хуйнанырные
wmnakl
робот-вертер
wmnakl
2 лет 9 месяцев назад

в ocshop’е есть сеопро, он от Yesvik или от Freelancer?

Игорь
робот-вертер
Игорь
1 год 10 месяцев назад

А если не OCstore, а простой OpenCart то как быть? Каким-нибудь адаптировать этот SeoPro можно?)
Заранее спасибо за ответ.

Руслан
робот-вертер
Руслан
1 год 7 месяцев назад

Скачал, установил и … все упало )))

Yoda
Magistr 80 level
1 год 7 месяцев назад

Смотрите ошибки

Anas
робот-вертер
Anas
9 месяцев 9 дней назад

Здравствуйте, подскажите, как решается это вопрос в версиях 2 и старше? с кешированием?

Black Overlord
Magistr 80 level
9 месяцев 9 дней назад

Решен нормально

wpDiscuz