Почему длинная пагинация
перегружает базу данных 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. Бесплатный аудит — без обязательств.
Закажите аудит →




Messenger Max