02.06.2026
0

Як оптимізувати OpenCart: від 4 секунд до 400мс

Повільний OpenCart — одна з найпоширеніших проблем з якою стикаються власники інтернет-магазинів. У цій статті розберемо покроковий процес оптимізації від аналізу до результату.

Крок 1: Аналіз slow query log

Перш за все увімкніть slow query log у MySQL/MariaDB:

slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 0.5

Використовуйте pt-query-digest для аналізу найважчих запитів. Найчастіше проблема в таблицях oc_product, oc_product_description та oc_category_path.

Крок 2: Індекси та запити

Додайте composite індекси на часто фільтровані поля. Типовий приклад — запити на сторінці категорії виконують full table scan через відсутній індекс на (status, date_available).

Крок 3: FastCGI Cache

Nginx FastCGI cache дає найбільший приріст для статичних сторінок. TTFB падає з 2-4 секунд до 10-50ms для закешованих сторінок. Налаштуйте виключення для кошика та адмінки.

Крок 4: Redis Object Cache

OpenCart підтримує Redis через стандартний cache driver. Замість дискового кешу session та object cache переключіться на Redis — це прискорює динамічні сторінки на 30-50%.

Крок 5: OPcache + JIT

PHP 8.x JIT компіляція дає 10-20% приросту для CPU-heavy операцій. Налаштуйте opcache.memory_consumption=256 і opcache.jit_buffer_size=64M.

Результат

Після комплексної оптимізації реального магазину з 80k товарів: TTFB категорій 4200ms → 380ms, MySQL CPU 240% → 18%.

Написати відгук
Увага: HTML не підтримується. Використовуйте звичайний текст.