ФиксИнтернет-магазин на 1С-Битрикс под ключ за 30 дней по фиксированной цене
Ускорение и производительность

Тюнинг MySQL и PostgreSQL под 1С-Битрикс: быстрая база под нагрузкой

Настраиваем СУБД под реальную нагрузку Битрикса: буферы InnoDB, конфигурацию my.cnf и postgresql.conf, индексы и статистику, репликацию и партиционирование. База перестаёт быть узким местом — каталог, оформление заказа и админка работают быстро даже в пиковые часы.

12 летс базами Битрикса под нагрузкой
300+настроенных серверов СУБД
от 2 днейдо первого ускорения
MySQL · PgSQLобе СУБД Битрикса
my.cnf pg.conf индекс буфер
Эффект после тюнинга

Что меняется в цифрах

−70%
времени тяжёлых запросов к каталогу
×3
запас по одновременным заказам
99%
попаданий в буферный пул InnoDB
−60%
нагрузки на диск сервера БД

Ориентиры по проектам нашей команды. Точные цифры по вашей базе покажем на аудите — замеряем до и после.

Как это работает

Путь запроса до и после оптимизации

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

Запросот Битрикса Планировщикстатистика Индексбез сканирования Буферданные в ОЗУ ответбыстро Вместо чтения всей таблицы с диска база берёт нужные строки из индекса и буфера в памяти
Запрос → планировщик → индекс и буфер в памяти → быстрый ответ вместо чтения с диска.
Что входит

Состав работ по оптимизации СУБД

Работаем и с MySQL / MariaDB, и с PostgreSQL — двумя СУБД, которые поддерживает Битрикс. Состав подбираем по итогам аудита под вашу нагрузку и объём базы.

Тюнинг буферов и памяти

Подбор буферного пула InnoDB, shared_buffers и кэшей под объём ОЗУ и профиль нагрузки.

Конфигурация my.cnf / postgresql.conf

Полный пересмотр параметров СУБД: логи, транзакции, параллелизм, таймауты — с документацией.

Индексы и статистика

Поиск недостающих и лишних индексов, обновление статистики, корректировка планов выполнения.

Миграция MyISAM в InnoDB

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

Репликация и партиционирование

Настройка реплик для бэкапов и аналитики, секционирование разросшихся таблиц.

Мониторинг и алерты

Дашборды по метрикам СУБД и оповещения по порогам, чтобы видеть проблему заранее.

Умный расчёт

Подберём состав работ по базе за минуту

Ответьте на несколько вопросов о вашей СУБД и нагрузке — покажем ориентир по стоимости и срокам оптимизации.

Вопрос 1
Загрузка вопроса…

Примеры работ

Кейсы по оптимизации СУБД

Интернет-магазин

Тюнинг MySQL для каталога на 200 000 товаров

Подобрали буфер InnoDB и индексы каталога, перевели таблицы из MyISAM — каталог перестал тормозить в пик.

−72%Время выборки
−55%Нагрузка на диск
6 днейСрок
B2B-портал

PostgreSQL под высокую нагрузку с репликой

Настроили postgresql.conf, подняли реплику под бэкапы и аналитику, секционировали таблицы статистики.

×3Запас по заказам
без простояВремя бэкапа
11 днейСрок
Медиапортал

Партиционирование разросшейся базы логов

Внедрили секционирование и регламент очистки, обновили статистику — админка и отчёты ускорились в разы.

−68%Объём рабочих таблиц
×4Скорость отчётов
7 днейСрок
Отзывы клиентов

Что говорят после оптимизации базы

«Каталог открывался по пять секунд, в распродажу сайт ложился. После тюнинга MySQL и индексов всё летает, акцию прошли без аварий. Отчёт с замерами до и после очень наглядный.»

Дмитрий Руководитель интернет-магазина

«Перевели нас на PostgreSQL и настроили реплику под бэкапы. Ночные копии больше не роняют портал, а нагрузка на боевой сервер заметно упала. Работали аккуратно, на копии базы.»

Елена IT-директор B2B-компании

«Таблицы статистики разрослись до десятков гигабайт, админка еле шевелилась. Сделали партиционирование и очистку — отчёты теперь открываются мгновенно. Дали понятную документацию по конфигу.»

Андрей Системный администратор

«Думали, что нужен сервер мощнее. Оказалось, хватило настроить буферы и добавить индексы — запас по нагрузке вырос втрое без апгрейда железа. Сэкономили на тарифе хостинга.»

Марина Владелец оптового сайта
Где база тормозит сайт

Симптомы, с которыми приходят к нам

Если каталог открывается секундами, оформление заказа подвисает, а админка живёт своей жизнью — чаще всего корень в СУБД: неверные буферы, отсутствующие индексы, устаревшая статистика и таблицы MyISAM. Эти проблемы лечатся настройкой, без переписывания сайта.

Каталог и листинги открываются по нескольку секунд, особенно в часы пик.
Подбираем буфер InnoDB, кэш страниц и индексы под структуру каталога — тяжёлые выборки уходят в память и считаются быстро.
Под нагрузкой база упирается в диск и съедает CPU, сайт ложится при акциях.
Перенастраиваем размеры буферов, лог транзакций и параллелизм, разгружаем диск — база держит пиковый трафик стабильно.
Часть таблиц до сих пор в MyISAM, при записи весь раздел блокируется.
Переводим таблицы в InnoDB с построчными блокировками и транзакциями — параллельные заказы перестают ждать друг друга.
Запросы в админке и отчётах выполняются медленно, планы идут по полному сканированию.
Анализируем медленные запросы, добавляем недостающие индексы и обновляем статистику — планировщик выбирает быстрый путь.
Резервная копия снимается с боевой базы и роняет сайт по ночам.
Поднимаем реплику и переносим бэкап и тяжёлую аналитику на неё — боевой сервер занят только клиентами.
Таблицы статистики и логов разрослись до десятков гигабайт и тормозят всё.
Внедряем партиционирование и регламент очистки — старые данные отделены, рабочие таблицы остаются компактными.
Кому это важно

Что даёт оптимизация базы каждой стороне

Сайт не падает в пик

База держит акции и сезонный трафик без аварий, заказы не теряются из-за тормозов.

Экономия на железе

Часто тюнинг снимает потолок без апгрейда сервера — платить за более мощный тариф не нужно.

Быстрее каталог — выше конверсия

Скорость выдачи товаров напрямую влияет на отказы и продажи в каталоге.

Прозрачный результат

Показываем замеры до и после: время запросов, нагрузку и отклик страниц.

Понятная конфигурация

Получаете задокументированный my.cnf или postgresql.conf с пояснением каждого параметра.

Карта индексов

Видите, какие индексы добавлены и почему, без риска сломать обновления Битрикса.

Меньше медленных запросов

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

Готовый мониторинг

Метрики базы выведены на дашборд — проблемы видно заранее, а не по жалобам.

Реплика для бэкапов

Резервное копирование и аналитика уходят на реплику, боевой сервер разгружен.

Контроль роста данных

Партиционирование и регламент очистки держат таблицы статистики под контролем.

Предсказуемая нагрузка

Буферы и лимиты подобраны под объём ОЗУ и профиль нагрузки сервера.

Алерты по порогам

Настроены оповещения по ключевым метрикам СУБД — реакция до инцидента.

Сравнение

Кому доверить тюнинг базы

Критерий Своими силамиХостинг-поддержкаСтудия B2Bsite
Подход к настройке Меняют параметры наугад по статьямТолько базовые лимиты тарифаПараметры под вашу нагрузку и ОЗУ
Прозрачность результата Нет замеров до и послеЗамеры поверхностныеЗамеры до и после, отчёт по эффекту
Безопасность изменений Риск уронить базу правкой конфигурацииНе лезут в структуру вашей базыБезопасные правки с откатом
Глубина работ Индексы и MyISAM обычно не трогаютГлубокий тюнинг вне зоны ответственностиИндексы, статистика, миграция MyISAM
Контроль после внедрения Без мониторинга и алертовМониторинг общий по серверуДашборды и алерты по метрикам СУБД
Подробно об услуге

Оптимизация СУБД для Битрикса: что это и зачем

Оптимизация MySQL или PostgreSQL для 1С-Битрикс — это глубокая настройка системы управления базой данных под реальную нагрузку вашего сайта. База в Битриксе хранит каталог, заказы, контент, сессии, статистику и историю, и почти каждая страница собирается из десятков запросов к ней. Когда СУБД настроена по умолчанию, эти запросы упираются в маленькие буферы, отсутствующие индексы и устаревшую статистику — и сайт тормозит независимо от того, насколько мощный у вас сервер. Грамотный тюнинг снимает эти узкие места, не меняя сам сайт: ускоряется каталог, оформление заказа и админка, а база перестаёт падать в пиковые часы.

Важно понимать: медленный сайт на Битриксе чаще всего тормозит не из-за кода, а из-за базы. Можно бесконечно кэшировать страницы и оптимизировать фронтенд, но если тяжёлый запрос к каталогу идёт по полному сканированию таблицы в сотни тысяч строк, страница всё равно будет открываться секундами. Поэтому настройка СУБД — фундамент производительности, с которого стоит начинать. Мы работаем и с MySQL / MariaDB, и с PostgreSQL — обеими СУБД, которые официально поддерживает Битрикс.

Из чего складывается оптимизация базы

Тюнинг СУБД объединяет несколько направлений, каждое из которых закрывает свой класс проблем. Настройка буферов и памяти определяет, сколько данных база держит в оперативной памяти вместо медленного диска. Конфигурация my.cnf или postgresql.conf управляет логами транзакций, параллелизмом, таймаутами и лимитами соединений. Индексы и статистика отвечают за то, чтобы запросы находили нужные строки быстро, а планировщик выбирал верный путь. Перевод таблиц из MyISAM в InnoDB убирает блокировки целых таблиц при записи. А репликация и партиционирование разгружают боевой сервер и держат большие таблицы под контролем.

Главные направления работ по оптимизации СУБД:

  • подбор буферного пула InnoDB, shared_buffers и кэшей под объём оперативной памяти сервера;
  • полный пересмотр конфигурации my.cnf или postgresql.conf под профиль нагрузки сайта;
  • поиск недостающих и лишних индексов, обновление статистики и исправление планов выполнения;
  • перевод таблиц из MyISAM в InnoDB с транзакциями и построчными блокировками;
  • настройка репликации для резервного копирования и аналитики без нагрузки на боевую базу;
  • партиционирование разросшихся таблиц статистики, логов и истории с регламентом очистки;
  • мониторинг метрик СУБД и алерты по порогам, чтобы видеть проблемы заранее.

Кому нужна оптимизация базы данных

Тюнинг СУБД окупается там, где сайт упирается в данные. Это интернет-магазины с большим каталогом, где листинги и фильтрация собираются из тяжёлых выборок. Это B2B-порталы с сотнями контрагентов и постоянным потоком заказов, где база работает на запись. Это медиапроекты и порталы с разросшимися таблицами контента и статистики. И это любой проект на Битриксе, который ложится в распродажу, тормозит в админке или упирается в потолок на текущем сервере. Чем больше данных и одновременных пользователей, тем заметнее эффект настройки.

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

Как устроена работа и почему это безопасно

Оптимизацию мы начинаем с аудита: снимаем метрики СУБД, разбираем лог медленных запросов, смотрим конфигурацию, движки таблиц и индексы, оцениваем профиль нагрузки. На основе этого формируем план безопасных изменений с ожидаемым эффектом. Все правки конфигурации и структуры сначала проверяем на копии базы, держим план отката и применяем в окно с минимальным трафиком. Перед миграцией таблиц и изменением структуры снимаем полную резервную копию. Боевая база защищена на каждом шаге, а большинство параметров СУБД меняются вовсе без остановки сайта.

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

Состав работ

Что именно мы делаем с базой

Аудит СУБД, замеры метрик и разбор лога медленных запросов
Подбор буферного пула InnoDB и shared_buffers под объём ОЗУ
Конфигурация my.cnf или postgresql.conf под профиль нагрузки
Поиск и добавление недостающих индексов в ключевых таблицах
Обновление статистики и исправление планов выполнения запросов
Перевод таблиц из MyISAM в InnoDB с резервной копией
Настройка репликации для бэкапов и аналитики
Партиционирование разросшихся таблиц и регламент очистки
Мониторинг метрик СУБД, алерты и документация по конфигурации
Этапы работы

Как идёт оптимизация базы

01

Аудит и замеры

Снимаем метрики СУБД, разбираем лог медленных запросов, профиль нагрузки и текущую конфигурацию.

02

План оптимизации

Формируем список безопасных изменений с ожидаемым эффектом и порядком внедрения.

03

Тюнинг конфигурации

Подбираем буферы, логи и параллелизм в my.cnf или postgresql.conf, проверяем на копии базы.

04

Индексы и структура

Добавляем недостающие индексы, обновляем статистику, переводим таблицы MyISAM в InnoDB.

05

Реплика и партиционирование

При необходимости поднимаем реплику и секционируем разросшиеся таблицы статистики и логов.

06

Мониторинг и отчёт

Настраиваем дашборды и алерты, передаём отчёт с замерами до и после и документацией.

Сроки

Сколько занимает работа

1–2 дня Аудит базы, замеры и разбор медленных запросов
1
2–3 дня План оптимизации и тюнинг конфигурации СУБД
2
3–5 дней Индексы, статистика и миграция MyISAM в InnoDB
3
4–7 дней Реплика, партиционирование и нагрузочная проверка
4
далее Мониторинг, алерты и сопровождение базы
5
Тарифы

Сколько стоит оптимизация базы

Стоимость зависит от объёма базы, типа СУБД и глубины работ. Ниже — ориентиры; точную смету присылаем после аудита, сам аудит базы бесплатный.

Экспресс-тюнинг
от 25 000 ₽
Срок: от 2 дней

Быстрый разбор и настройка конфигурации СУБД под текущую нагрузку.

  • Аудит и замеры базы
  • Подбор буферов и кэшей
  • Конфигурация my.cnf или postgresql.conf
  • Отчёт с замерами до и после
Популярный выбор
Полная оптимизация
от 60 000 ₽
Срок: от 5 дней

Конфигурация, индексы, статистика и перевод таблиц в InnoDB.

  • Всё из «Экспресс-тюнинга»
  • Индексы и обновление статистики
  • Миграция MyISAM в InnoDB
  • Разбор медленных запросов
  • Базовый мониторинг СУБД
База под нагрузку
от 130 000 ₽
Срок: от 10 дней

Решение для крупного каталога и высокого трафика с репликами.

  • Всё из «Полной оптимизации»
  • Репликация для бэкапов и аналитики
  • Партиционирование больших таблиц
  • Нагрузочное тестирование
  • Дашборды и алерты по метрикам
Экспресс-тюнинг от 25 000 ₽
Срок: от 2 дней

Быстрый разбор и настройка конфигурации СУБД под текущую нагрузку.

  • Аудит и замеры базы
  • Подбор буферов и кэшей
  • Конфигурация my.cnf или postgresql.conf
  • Отчёт с замерами до и после
Популярный Полная оптимизация от 60 000 ₽
Срок: от 5 дней

Конфигурация, индексы, статистика и перевод таблиц в InnoDB.

  • Всё из «Экспресс-тюнинга»
  • Индексы и обновление статистики
  • Миграция MyISAM в InnoDB
  • Разбор медленных запросов
  • Базовый мониторинг СУБД
База под нагрузку от 130 000 ₽
Срок: от 10 дней

Решение для крупного каталога и высокого трафика с репликами.

  • Всё из «Полной оптимизации»
  • Репликация для бэкапов и аналитики
  • Партиционирование больших таблиц
  • Нагрузочное тестирование
  • Дашборды и алерты по метрикам

Дополнительные опции

Миграция базы MyISAM в InnoDB целиком от 20 000 ₽
Перевод проекта с MySQL на PostgreSQL от 90 000 ₽
Настройка мониторинга и алертов СУБД от 18 000 ₽
Расчёт выгоды

Сколько вы теряете на медленной базе

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

Потери выручки в месяц 0 ₽

Оценка по формуле: посетители × доля уходов в процентах × доход с посетителя. Это ориентир упущенной выручки, а не точный прогноз.

База знаний

Частые ситуации с базой — и наш ответ

Это не общие советы из интернета, а закономерности из реальных проектов на Битриксе. Каждый ответ — позиция нашей команды.

Буферы

Сервер мощный, а сайт тормозит — в чём дело

Наш ответ

Чаще всего база настроена по умолчанию: буферный пул InnoDB занимает доли доступной памяти, поэтому данные постоянно читаются с диска. Мы подбираем размер буферов под объём ОЗУ, и тот же сервер начинает держать в разы больше нагрузки без апгрейда.

Индексы

Каталог открывается секундами, хотя кэш включён

Наш ответ

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

MyISAM

Заказы под нагрузкой подвисают и ждут друг друга

Наш ответ

Это признак таблиц MyISAM: при записи блокируется вся таблица, и параллельные заказы встают в очередь. Переводим таблицы в InnoDB с построчными блокировками и транзакциями — одновременная работа перестаёт упираться в блокировки.

Бэкапы

Ночные резервные копии роняют сайт

Наш ответ

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

Рост данных

Таблицы статистики разрослись и тормозят админку

Наш ответ

Со временем таблицы логов, статистики и истории в Битриксе достигают десятков гигабайт. Внедряем партиционирование и регламент очистки: старые данные отделены, рабочие таблицы остаются компактными, а отчёты снова открываются быстро.

Почему мы

На что можно рассчитывать по договору

Замеры до и после

Фиксируем метрики базы до работ и показываем эффект цифрами, а не словами.

Безопасные изменения

Правки проверяем на копии базы и держим план отката — боевой сайт под защитой.

Обе СУБД Битрикса

Глубоко знаем и MySQL / MariaDB, и PostgreSQL, помогаем выбрать и перейти.

Конфиг с документацией

Передаём my.cnf или postgresql.conf с пояснением каждого параметра — без чёрных ящиков.

Экспертный взгляд

Тюнинг базы или апгрейд сервера: что выбрать

Когда сайт на Битриксе начинает тормозить, первая мысль обычно простая: пора покупать сервер мощнее. Логика понятна — раз не хватает ресурсов, добавим ресурсов. Но в большинстве проектов, которые к нам приходят, дело вовсе не в железе. Сервер мощный, а база настроена по умолчанию: буферы крошечные, индексов не хватает, половина таблиц в MyISAM, статистика устарела. В такой ситуации апгрейд даёт временный и дорогой эффект, а корень проблемы остаётся. Ниже разбираем, почему база чаще всего и есть узкое место, что именно мы с ней делаем и как добиваемся стабильной скорости под нагрузкой без лишних трат на железо.

Почему база — главное узкое место Битрикса

Битрикс — система, плотно завязанная на базу данных. Почти каждая страница собирается из десятков, а иногда сотен запросов: каталог тянет товары и свойства, фильтр считает выборки, оформление заказа пишет и читает данные, админка строит отчёты по большим таблицам. Когда посетителей мало, медленная база незаметна. Но стоит вырасти трафику или каталогу, и запросы начинают конкурировать за ресурсы СУБД. Если буферов мало, данные читаются с диска, диск перегружается, очередь запросов растёт, и сайт встаёт. Никакое кэширование фронтенда это не лечит, потому что проблема глубже — в слое данных.

Именно поэтому оптимизацию производительности логично начинать с базы. Это фундамент: пока тяжёлые запросы идут по полному сканированию, а буферы не вмещают рабочий набор данных, остальные меры дают лишь косметический эффект. Настроив СУБД, мы получаем прочное основание, на котором уже хорошо работают и кэш, и оптимизация кода. Если же помимо базы тормозит и сам сервер, имеет смысл провести серверную и инфраструктурную оптимизацию в связке с тюнингом СУБД.

Что мы делаем с конфигурацией СУБД

Сердце тюнинга — конфигурация. В MySQL это файл my.cnf, в PostgreSQL — postgresql.conf. Мы не применяем универсальные шаблоны из статей, потому что они не учитывают ваш объём памяти и характер нагрузки. Вместо этого подбираем параметры под конкретный сервер. В MySQL это размер буферного пула InnoDB, параметры лога транзакций и способ его сброса на диск, кэши таблиц и соединений, лимиты одновременных подключений и таймауты. В PostgreSQL — shared_buffers и work_mem под доступную память, effective_cache_size как подсказка планировщику, настройки контрольных точек и WAL, параллелизм и автоочистка. Каждый параметр мы объясняем, так что вы получаете не чёрный ящик, а понятный задокументированный конфиг.

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

Индексы, статистика и структура таблиц

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

Когда нужны репликация и партиционирование

Для большинства проектов хватает тюнинга конфигурации и индексов. Но на высокой нагрузке и больших объёмах подключаются более серьёзные инструменты. Репликация создаёт копию базы, которая повторяет изменения с основного сервера: на неё переносят резервное копирование и тяжёлую аналитику, чтобы они не нагружали боевую базу. Так ночные бэкапы перестают ронять сайт, а отчёты не мешают клиентам. Партиционирование разбивает огромные таблицы статистики, логов и истории на секции — база работает с нужной частью, а не со всей таблицей, и обслуживание ускоряется. Эти инструменты мы подключаем по необходимости, когда они реально дают выигрыш, а не ради галочки.

Тюнинг против апгрейда: что выгоднее

Сравним прямо. Апгрейд сервера — быстрый, но дорогой путь: вы платите больше каждый месяц, при этом неоптимальная конфигурация и отсутствующие индексы остаются, и через какое-то время потолок снова достигается. Тюнинг базы — разовая работа, после которой текущий сервер начинает держать в разы больше нагрузки, а ежемесячные расходы не растут. На практике в большинстве проектов грамотная настройка СУБД снимает потолок производительности полностью, и апгрейд оказывается не нужен. Мы всегда сначала выжимаем максимум из имеющегося железа и рекомендуем более мощный сервер только тогда, когда ресурсов действительно не хватает по объективным причинам — например, база перестала помещаться в память физически.

MySQL или PostgreSQL для вашего проекта

Битрикс штатно работает с обеими СУБД, и выбор зависит от задач. MySQL и совместимая MariaDB проще в обслуживании, привычнее хостингам и отлично подходят большинству проектов малого и среднего размера. PostgreSQL чаще выбирают под высокую нагрузку, сложные аналитические выборки и очень большие объёмы данных — он умеет эффективнее работать с тяжёлыми запросами и параллелизмом. На небольшом сайте разница невелика, и важнее не выбор СУБД, а качество настройки. На крупном каталоге или B2B-портале переход на PostgreSQL способен дать ощутимый выигрыш, и мы помогаем взвесить этот шаг и при необходимости выполнить перенос без потери данных. Если вам нужна не только база, но и регулярное сопровождение всего стека, посмотрите поддержку nginx, Apache, PHP и MySQL — там мы держим в форме весь серверный слой.

Как мы гарантируем безопасность работ

Любые изменения в базе мы делаем по строгому правилу: сначала копия, потом боевая база. Конфигурацию и структуру проверяем на копии под нагрузкой, держим план отката и применяем правки в окно минимального трафика. Перед миграцией таблиц и изменением структуры снимаем полную резервную копию, чтобы при любом сценарии вернуть базу в исходное состояние. Мы не правим ядро Битрикса и не ломаем стандартную структуру таблиц, поэтому обновления платформы проходят без конфликтов. Все доступы остаются у вас, а каждое изменение задокументировано: итоговый конфиг с пояснениями, список добавленных индексов и отчёт с замерами.

Что вы получаете на выходе

Результат оптимизации измерим. Мы фиксируем метрики базы до работ — время тяжёлых запросов, попадание в буфер, нагрузку на диск и CPU — и показываем те же цифры после. Каталог и листинги начинают открываться быстрее, оформление заказа перестаёт подвисать, админка и отчёты работают без зависаний, а запас по одновременным пользователям растёт в несколько раз. Ночные бэкапы и аналитика больше не мешают клиентам. Вы получаете задокументированную конфигурацию my.cnf или postgresql.conf, карту индексов, отчёт по эффекту и при желании настроенный мониторинг с алертами, чтобы держать базу под контролем по мере роста проекта.

Возражения, которые мы слышим чаще всего

«У нас всё и так быстро, оптимизация не нужна». Возможно — но проверить стоит. Сайт, который летает при ста посетителях, может лечь при тысяче, если база настроена по умолчанию. Бесплатный аудит покажет реальный запас по нагрузке без всяких обязательств. «Боюсь, что вы сломаете базу правками». Поэтому мы и работаем на копии, держим план отката и делаем резервную копию перед изменениями структуры — риск для боевой базы сведён к минимуму. «Это разовая работа, а проблемы вернутся». Базовый результат остаётся у вас навсегда, а мониторинг и сопровождение, если они нужны, помогают держать базу в форме по мере роста данных и нагрузки, но это уже ваш выбор, а не обязательство.

Как мы готовим базу к распродаже

Сезонные акции и распродажи — главный экзамен для базы данных. В обычные дни сайт может работать ровно, но в час пик одновременных заказов становится в десятки раз больше, и слабые места СУБД проявляются разом: буферов не хватает, очередь запросов растёт, диск перегружен, блокировки в MyISAM выстраивают заказы в очередь. Поэтому подготовку к нагрузке мы ведём заранее, а не в день акции. Сначала по логам и аналитике оцениваем ожидаемый пиковый трафик, затем настраиваем буферы, индексы и параллелизм с запасом и проверяем результат под нагрузкой. Прогон нагрузочного теста показывает, сколько одновременных пользователей и заказов выдержит база, и где находится реальный потолок. Если потолок ниже ожидаемого пика, мы знаем, что именно усилить: память под буферы, индексы тяжёлых выборок или вынос аналитики на реплику.

Отдельно готовим сценарий оформления заказа — самую критичную операцию в пик. Заказ затрагивает запись в несколько таблиц, и любая блокировка здесь напрямую теряет деньги. Мы убеждаемся, что все участвующие таблицы переведены в InnoDB, проверяем индексы под запросы корзины и оформления, при необходимости разносим нагрузку так, чтобы запись не конкурировала с тяжёлым чтением каталога. К старту акции у вас есть понимание запаса по нагрузке в цифрах, а не надежда, что в этот раз пронесёт.

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

Оптимизация — не разовое действие, после которого можно забыть про базу. Данные растут, появляются новые разделы и интеграции, меняется профиль нагрузки, и со временем настройки, идеальные сегодня, требуют корректировки. Поэтому мы предлагаем мониторинг с дашбордами по ключевым метрикам СУБД: попадание в буферный пул, время выполнения запросов, число медленных запросов, нагрузка на диск и CPU, размер таблиц и задержка репликации. Алерты по порогам предупреждают о проблеме до того, как её заметят клиенты — например, когда буфер перестаёт вмещать рабочий набор данных или таблица статистики начинает разрастаться сверх нормы. Это превращает обслуживание базы из реакции на жалобы в управляемый процесс.

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

С чего начать

Начните с аудита базы — он бесплатный и ни к чему не обязывает. Дайте нам доступ к серверу СУБД, и мы снимем метрики, разберём медленные запросы, посмотрим конфигурацию и движки таблиц. По итогам вы получите честную картину: где именно тормозит база, какой запас по нагрузке у вас сейчас, что даст оптимизация и сколько она стоит. Дальше решаете вы. Если у вас уже есть подозрение, что база — узкое место, или сайт регулярно ложится в пик, не откладывайте: чем раньше мы найдём причину, тем дешевле и спокойнее пройдёт следующая распродажа.

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

Частые вопросы об оптимизации MySQL и PostgreSQL для Битрикса

Что такое оптимизация базы данных простыми словами? +

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

Что такое буферный пул InnoDB? +

Буферный пул — это область оперативной памяти, в которой MySQL держит данные и индексы таблиц InnoDB. Чем больше нужных данных лежит в этом буфере, тем реже база читает с диска и тем быстрее отвечает. Правильный размер буферного пула под объём ОЗУ сервера — один из главных рычагов ускорения. Аналог в PostgreSQL — shared_buffers и кэш операционной системы.

Что такое индекс и зачем он нужен? +

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

Чем отличается MyISAM от InnoDB? +

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

Что такое статистика планировщика? +

Планировщик запросов выбирает, как именно выполнить запрос: по индексу или сканированием. Решает он на основе статистики — сведений о распределении данных в таблицах. Если статистика устарела, планировщик выбирает медленный путь, даже когда есть подходящий индекс. Поэтому мы обновляем статистику (ANALYZE) как часть оптимизации.

Какую СУБД лучше выбрать для Битрикса? +

Битрикс штатно работает и с MySQL / MariaDB, и с PostgreSQL. MySQL проще в обслуживании и привычнее большинству хостингов. PostgreSQL чаще выбирают под высокую нагрузку, сложные выборки и большие объёмы данных. На небольшом и среднем проекте разница невелика и важнее грамотный тюнинг. На крупном каталоге и B2B-портале мы помогаем взвесить переход на PostgreSQL.

Что настраивается в my.cnf? +

Файл my.cnf — это конфигурация MySQL. В нём мы подбираем размер буферного пула InnoDB, параметры лога транзакций, способ его сброса на диск, кэши соединений и таблиц, лимиты одновременных подключений, таймауты и лог медленных запросов. Каждый параметр настраивается под объём ОЗУ сервера и профиль нагрузки вашего сайта, а не по универсальному шаблону.

Что настраивается в postgresql.conf? +

Это конфигурация PostgreSQL. Здесь мы задаём shared_buffers и work_mem под доступную память, effective_cache_size для подсказки планировщику, параметры контрольных точек и WAL, параллелизм выполнения запросов и автоочистку (autovacuum). Грамотная настройка этих параметров напрямую влияет на скорость выборок и стабильность под нагрузкой.

Можно ли перейти с MySQL на PostgreSQL без потери данных? +

Да. Битрикс поддерживает обе СУБД, и переход выполняется штатно: переносятся данные, перестраивается структура под PostgreSQL и проверяется работа всех модулей. Мы делаем перенос на копии, прогоняем тесты и переключаем боевую базу в окно с минимальным трафиком. Решение о переходе принимаем только если он даст реальный выигрыш на вашей нагрузке.

Подходит ли MariaDB вместо MySQL? +

Да, MariaDB — совместимая замена MySQL, и Битрикс с ней работает. Принципы тюнинга те же: буферный пул InnoDB, лог транзакций, индексы и статистика. Мы настраиваем MariaDB по той же методике, что и MySQL, с учётом особенностей её версии и движка.

Что такое репликация и зачем она нужна? +

Репликация — это создание копии базы (реплики), которая автоматически повторяет изменения с основного сервера. На реплику переносят резервное копирование и тяжёлую аналитику, чтобы они не нагружали боевую базу. Так ночные бэкапы перестают ронять сайт, а отчёты не мешают клиентам оформлять заказы. Для крупных проектов реплика — почти обязательный элемент.

Что такое партиционирование таблиц? +

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

Поможет ли оптимизация, если сайт падает в распродажу? +

Чаще всего да. В пиковые часы база первой упирается в потолок: не хватает буферов, растёт очередь запросов, диск перегружен. Тюнинг буферов, индексов и параллелизма поднимает запас по одновременным заказам, нередко в несколько раз. Перед акцией мы прогоняем нагрузочный тест, чтобы убедиться, что база выдержит ожидаемый трафик.

Можно ли обойтись без апгрейда сервера? +

Очень часто можно. На многих проектах сервер мощный, но настроен по умолчанию: буферы маленькие, индексов не хватает, таблицы в MyISAM. После тюнинга тот же сервер держит в разы больше нагрузки. Мы всегда сначала выжимаем максимум из текущего железа и только при реальной нехватке ресурсов рекомендуем апгрейд.

Насколько вырастет скорость после оптимизации? +

Зависит от исходного состояния базы. Если конфигурация по умолчанию, нет нужных индексов и таблицы в MyISAM, тяжёлые запросы ускоряются на 50–80 процентов, а запас по нагрузке вырастает в несколько раз. Если база уже частично настроена, выигрыш скромнее. Точные цифры по вашему проекту мы покажем на аудите — замеряем до и после.

Не сломается ли сайт во время оптимизации? +

Нет. Изменения конфигурации и структуры мы сначала проверяем на копии базы, держим план отката и применяем правки в окно с минимальным трафиком. Большинство параметров СУБД меняются без остановки сайта. Перед миграцией таблиц делаем резервную копию. Боевая база защищена на каждом шаге.

Переживёт ли тюнинг обновления Битрикса? +

Да. Мы не правим ядро и не ломаем стандартную структуру таблиц Битрикса. Настройка конфигурации СУБД и добавление индексов не конфликтуют с обновлениями платформы. Перевод таблиц в InnoDB — штатная операция, поддерживаемая Битриксом. Обновления проходят без проблем.

Делаете ли вы резервную копию перед работами? +

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

Сохранится ли доступ к базе у нашей команды? +

Да. Мы не забираем доступы и не привязываем вас к себе. Все изменения задокументированы: вы получаете итоговый my.cnf или postgresql.conf с пояснениями, список добавленных индексов и отчёт. Развивать и поддерживать базу сможет как наша команда, так и ваши специалисты.

Сколько стоит оптимизация базы данных? +

Экспресс-тюнинг конфигурации обычно начинается от 25 000 рублей, полная оптимизация с индексами и миграцией MyISAM — от 60 000, решение под высокую нагрузку с репликами и партиционированием — от 130 000. Итоговая цена зависит от объёма базы, типа СУБД и глубины работ. Точную смету присылаем после бесплатного аудита.

Что входит в бесплатный аудит базы? +

На аудите мы снимаем метрики СУБД, разбираем лог медленных запросов, смотрим текущую конфигурацию, движки таблиц и индексы, оцениваем профиль нагрузки. По итогам вы получаете картину узких мест и план оптимизации с ожидаемым эффектом и стоимостью. Аудит ни к чему не обязывает.

За какой срок вы оптимизируете базу? +

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

Нужен ли доступ к серверу для работы? +

Да, для полноценного тюнинга нужен доступ к серверу базы данных и к конфигурации СУБД, а также к панели управления или SSH. Если доступа к серверу нет (например, на shared-хостинге), мы оптимизируем то, что доступно: индексы, структуру таблиц и запросы, а по конфигурации даём рекомендации для хостинга.

Делаете ли вы сопровождение базы после оптимизации? +

Да. После работ предлагаем мониторинг с алертами по ключевым метрикам СУБД и сопровождение: контроль роста данных, регулярное обновление статистики, реакцию на инциденты и донастройку при росте нагрузки. Это держит базу в форме по мере развития проекта, но сопровождение не обязательно — базовый результат остаётся у вас.

Начать проект

Разберём, где тормозит ваша база?

Дайте доступ к серверу СУБД — снимем метрики, найдём узкие места и пришлём план оптимизации с замерами и сметой в течение рабочего дня.

  • Ответим в течение рабочего дня
  • Бесплатный аудит процессов и расчёт
  • NDA и фиксированная смета