Overdrive — ускорение CS-Cart для больших каталогов и высокой нагрузки

Ускоряет самые тяжёлые операции магазина: товарные листинги, фильтры, поиск, импорт, экспорт, административные страницы и работу больших таблиц.

Больше чем просто кеш

Full Page Cache и Varnish помогают отдавать уже подготовленные страницы. Но в магазине постоянно меняются цены, остатки, товары и категории. Из-за широких зависимостей CS-Cart одно изменение может инвалидировать сразу большой объём кэша.

В результате страницы не успевают оставаться прогретыми: кэш сбрасывается, а первые посетители снова запускают тяжёлые PHP- и SQL-операции.

Overdrive работает на другом уровне. Он находит конкретные дорогие операции, ускоряет их и сбрасывает только те сохранённые данные, которых действительно коснулось изменение.

Эффективнее чем Full Page Cache

Overdrive не пытается решить все проблемы одной сохранённой копией страницы.

Модуль отдельно работает с товарными листингами, фильтрами, поиском, блоками, импортом, административными списками и таблицами базы данных. Для каждого сценария используется свой механизм ускорения.

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

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

Как выглядит разница

Обычный FPC:

Изменился товар → инвалидирован большой набор страниц → следующие посетители заново формируют тяжёлые страницы.

Overdrive:

Изменился товар → найдены связанные с ним блоки → удалены только затронутые копии → блоки поставлены на прогрев → остальной кэш продолжает работать.

Что даёт модуль

  • Ускоряет товарные листинги на больших каталогах.
  • Снижает нагрузку от фильтров и подсчёта количества товаров.
  • Создаёт отдельный поисковый индекс.
  • Ускоряет списки товаров и заказов в административной панели.
  • Сокращает время массового импорта товаров.
  • Ускоряет глубокие страницы экспорта и генерацию sitemap.
  • Сохраняет готовый HTML тяжёлых товарных блоков.
  • Точечно сбрасывает кэш при изменении товаров, цен и остатков.
  • Прогревает удалённые копии до прихода следующего посетителя.
  • Находит медленные SQL-запросы и показывает их стоимость.
  • Добавляет проверенные индексы для типовых тяжёлых запросов.
  • Помогает обслуживать большие журнальные таблицы.
  • Показывает, сколько ресурсов занимает само ускорение.

Быстрые товарные листинги

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

Overdrive сначала получает ограниченный набор подходящих идентификаторов через индекс, а затем передаёт его штатному механизму CS-Cart. Магазину больше не нужно обрабатывать весь каталог при каждом открытии листинга.

Ускорение применяется только там, где модуль может сохранить состав и порядок выдачи. Категории с активными фильтрами, поиск и неподходящие способы сортировки продолжают работать штатно.

Результаты на тестовом каталоге с 3 миллионами товаров

  • «Новые товары», первая страница: с 52,1 до 2,2 секунды.
  • «Новые товары», восьмая страница: с 55,8 до 1 секунды.
  • «Новые товары», сотая страница: с 86,2 до 1,6 секунды.
  • Список товаров в админке: с 49,5 до 0,66 секунды.

Результат зависит от структуры каталога, конфигурации сервера, темы, установленных модулей и характера нагрузки.

Хранимые блоки с точечной инвалидацией

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

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

Удалённые копии можно поставить в очередь на фоновую перерисовку. Следующий посетитель получает уже подготовленный результат, а не ждёт повторного выполнения тяжёлых запросов.

Сохранение гостевых страниц без запуска PHP

Для подходящих гостевых страниц Overdrive может сохранять готовый ответ на диске. Веб-сервер отдаёт такую страницу без полного запуска CS-Cart.

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

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

Быстрые фильтры

Подсчёт количества товаров в фильтрах может быть одной из самых дорогих операций каталога. Особенно это заметно в категориях с большим количеством товаров, характеристик и вариантов.

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

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

Поисковый индекс вместо тяжёлого LIKE

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

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

Если индекс отключён, отсутствует или не готов, магазин продолжает использовать штатный поиск CS-Cart.

Быстрее импорт товаров

Во время импорта CS-Cart и установленные модули могут многократно пересчитывать одни и те же категории, количество товаров продавца и связанные данные.

Overdrive объединяет повторяющиеся операции и выполняет их пакетно. Это уменьшает количество запросов и сокращает время обработки каждой строки.

На тестовом каталоге с 3 миллионами товаров импорт 200 строк сократился с 60,5 до 11,3 секунды — с 3,3 до 17,6 строки в секунду.

Эффект зависит от редакции CS-Cart, активных модулей и структуры импортируемых данных.

Быстрый экспорт и sitemap

Глубокая пагинация через LIMIT offset становится всё дороже по мере продвижения по каталогу: база данных читает и отбрасывает строки, находящиеся до нужной страницы.

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

Тот же подход используется при генерации карты сайта, где товары уже идут в порядке product_id.

На тестовом каталоге страница sitemap около смещения 2,9 миллиона товаров сократилась с 790 до 6 миллисекунд.

Быстрая административная панель

Модуль ускоряет не только витрину.

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

Администратор быстрее открывает каталог, ищет заказы и получает рабочую панель даже на магазине с большим объёмом данных.

Контроль больших таблиц базы данных

С годами журнальные и служебные таблицы CS-Cart могут вырасти до миллионов строк и десятков гигабайт.

Обычное удаление старых записей читает и удаляет строки внутри большой таблицы. Такая операция долго работает, создаёт нагрузку и не всегда возвращает место файловой системе.

Overdrive умеет переводить подходящие таблицы на InnoDB и делить данные на месячные секции. После окончания срока хранения старая секция удаляется целиком через DROP PARTITION.

На тестовой таблице журналов с 1,2 миллиона строк удаление 797 691 записи показало следующий результат:

  • штатный DELETE на MyISAM: 8,04 секунды, место на диске не освобождено;
  • DELETE после перевода в InnoDB: 16,11 секунды, место не освобождено;
  • удаление секции: 0,24 секунды и 207 МБ освобождённого места.

Журнал медленных SQL-запросов

На многих серверах магазин не имеет доступа к системному журналу MySQL. Overdrive измеряет выполнение запросов на уровне CS-Cart и сохраняет только те, которые превысили заданный порог.

В административной панели можно увидеть:

  • текст и структуру запроса;
  • затронутые таблицы;
  • количество выполнений;
  • суммарное время;
  • максимальное время выполнения;
  • дату первого и последнего обнаружения.

Профилирование можно включить для диагностики, изменить порог или полностью отключить.

Панель производительности

Раздел «Настройки → Overdrive» собирает основные данные о состоянии магазина:

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

Модуль помогает не только ускорить магазин, но и понять, где именно расходуются его ресурсы.

Для каких магазинов подходит Overdrive

Модуль стоит рассматривать, если:

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

Для небольшого магазина Overdrive может оказаться избыточным. Если таблицы и каталог ещё не создают заметной нагрузки, минимальное изменение — ничего не менять.

Перед подключением

Overdrive глубоко работает с базой данных, поэтому перед запуском необходимо проверить инфраструктуру магазина.

Для использования всех возможностей могут потребоваться:

  • CS-Cart или Multi-Vendor;
  • совместимая версия PHP;
  • MySQL или MariaDB с поддержкой необходимых возможностей;
  • cURL для фонового прогрева страниц;
  • возможность настроить cron;
  • резервная копия базы данных;
  • свободное место для перестройки крупных таблиц;
  • тестовый контур для предварительных замеров.

Совместимость и порядок внедрения лучше определить до установки. Конфигурация магазина, объём данных, набор модулей и настройки сервера влияют на доступные способы ускорения.


FAQ

Частые вопросы

Не нашли ответ? Напишите — ответим в течение нескольких часов.

Задать вопрос

Обычный Full Page Cache и Varnish сохраняют готовую страницу целиком и быстро отдают её повторным посетителям. Но при изменении товаров, цен или остатков CS-Cart может инвалидировать сразу большой объём связанного кэша. На магазине с частыми обновлениями страницы приходится постоянно формировать и прогревать заново. Overdrive работает точечнее. Он ускоряет отдельные тяжёлые операции — товарные листинги, фильтры, поиск, импорт и административные списки — и хранит связи между товарами и сохранёнными блоками. При изменении товара модуль может удалить и прогреть только затронутые копии, не сбрасывая остальной кэш. При этом Overdrive не обязательно заменяет Varnish: эти решения могут работать на разных уровнях и дополнять друг друга.

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

Да, Overdrive поддерживает CS-Cart и Multi‑Vendor. Для Multi‑Vendor предусмотрены сценарии, связанные со страницами продавцов, подсчётом их товаров, административными списками и импортом большого каталога. Фактический набор доступных оптимизаций зависит от редакции платформы, версии CS-Cart, активных модулей и структуры данных конкретного проекта.

Сначала нужно проверить версию CS-Cart, PHP и сервера базы данных, оценить объём каталога и определить самые медленные операции. Для изменений крупных таблиц также потребуются актуальная резервная копия, достаточный запас дискового пространства и желательно тестовый контур. Для фонового прогрева нужен cURL, а для предсказуемого обслуживания на высоконагруженном магазине рекомендуется cron. Точный порядок внедрения определяется после диагностики магазина.

Отказываться от них заранее не нужно. Redis ускоряет хранение данных и штатного кэша, Varnish отдаёт готовые HTTP-ответы, а CDN приближает статические файлы и кэшируемый контент к посетителю. Overdrive решает другую часть задачи: сокращает стоимость тяжёлых PHP- и SQL-операций и точнее управляет сохранёнными блоками и связанными с ними данными. Перед подключением нужно проверить текущую схему кэширования и правила инвалидации. После этого можно определить, какие возможности Overdrive дополнят существующую инфраструктуру, а какие включать не требуется.

НАЧНЁМ РАБОТУ

Опишите задачу — оценим за 24 часа

Скажем, реально ли это сделать, сколько займёт и сколько будет стоить. Бесплатно, без обязательств.

  • Фиксированная цена до старта
  • Договор на каждый проект
  • Гарантия на результат
Желательный способ связи

Готовые решения для CS-Cart

Полная подготовка к продажам через AI-агентов для CS-CartУниверсальный ИИ-помощник для CS-CartРасширенный быстрый заказПродажа товаров с помощью ChatGPTDaData — автозаполнение данных организации по ИННEU Energy ComplianceСинхронизация с MaxmaМножественный выбор опцийOverdrive — ускорение CS-Cart для больших каталогов и высокой нагрузкиСинхронизация каталога Wildberries и Ozon для CS-CartПоказать пароль - иконка глазкаРасширение для бонусных балловRMA: Добавить изображениеСДЭК: Продавец-отправительАналитика поискаПробный период для продавцовЯндекс CDN для CS-CartМгновенный умный поиск с автодополнением