Reemake Digital Agency · Модуль AJAX Content

Почему длинная пагинация
перегружает базу данных Joomla

Стоимость зависит от задач проекта, но одно можно сказать точно: если у вас 500+ материалов и стандартная пагинация — каждая страница стоит дорого. Разбираем, что происходит с БД и как AJAX-подгрузка решает проблему.

Проблема

Что не так со стандартной пагинацией

COUNT(*)

Дорогая операция на большой таблице. Каждый переход — новый подсчёт всех материалов.

JOIN + LIMIT

Много JOIN ради одной страницы. Чем больше связей — тем медленнее запрос.

Нагрузка на CPU

При активных пользователях — MySQL нагружен на 80–100 %. Сайт тормозит.

Индексы не помогают

COUNT(*) не использует индексы эффективно. Проблема остаётся на любой конфигурации.

Решение

Как снизить нагрузку на БД

1. Диагностика: открыть slow-query log MySQL, найти тяжёлые COUNT(*).

2. Заменить пагинацию на AJAX: установить модуль Reemake AJAX Content.

3. Настроить LIMIT: по 6–12 статей за запрос, без COUNT.

4. Сравнить TTFB страницы до и после — обычно падение в 3–4 раза.

Кейс · Байерстрой

Агрегатор металлопроката: пагинация давала 800 мс, AJAX — 35 мс

Задача: «Байерстрой» — агрегатор металлопроката в Перми. 500+ статей. Стандартная пагинация на 3-й странице отдавала данные за 800 мс. При 300+ активных пользователях — сайт подвисал. Хостинг предлагал переход на VPS за дополнительные расходы.

Что сделали: установили Reemake AJAX Content. Настроили LIMIT без COUNT — 8 карточек за запрос. Проверили на реальной базе — каждый AJAX-запрос отдаёт карточки за 35–45 мс. Замеры TTFB: до — 800 мс, после — 210 мс.

Результат: переезжать на VPS не понадобилось. Сайт работает стабильно на текущем хостинге. Нагрузка на MySQL упала. Пользователи листают по 4–5 порций вместо ухода на пагинации.

Вопросы и ответы

Гео и техника

Работаете только в Перми?
Офис в Перми, работаем по всей России и краю: Березники, Соликамск, Чайковский, Кунгур, Краснокамск, Лысьва. Аудит БД делаем удалённо.

Точно ли AJAX быстрее?
Да. COUNT(*) — дорогая операция, особенно на 100 000+ строк. Замена на LIMIT без COUNT снижает нагрузку в разы. Показываем разницу на реальном сайте при аудите.

Как узнать, что у меня проблема?
Открыть slow-query log MySQL. Если COUNT(*) занимает > 1 сек — пора переходить на AJAX. Поможем настроить мониторинг.

Что если база 500 000+ строк?
Работает. Модуль использует индексы по дате и категориям. Даже на больших базах AJAX-запрос держится в пределах 100 мс.

Проверим нагрузку на вашу БД

Проведём аудит: посмотрим slow-query log, найдём тяжёлые запросы. Предложим замену на AJAX. Бесплатный аудит — без обязательств.

Закажите аудит →
8 (950) 442-49-00 reemake@inbox.ru Max Messenger Max

с 8:00 до 20:00 (МСК)

г. Пермь