Как уменьшить размер базы Битрикс24 в коробке
Размер базы редко растёт равномерно: обычно это две-три таблицы, которые копят историю. Поэтому порядок такой — сначала посмотреть, что весит, потом чистить.
Найти тяжёлые таблицы
Размер таблиц смотрят запросом к служебным таблицам базы или в инструменте управления базой на сервере. Интересует десяток самых больших — дальше можно не смотреть, остальные вместе весят меньше любой из них.
Обычные виновники в порядке частоты:
| Что | Почему растёт | Что делать |
|---|---|---|
| Журнал событий | Пишется каждое действие пользователей и системы | Ограничить срок хранения в настройках, старое удалить |
| Поисковый индекс | Индексируется весь контент, включая технические поля | Очистить и перестроить, сузить состав индексируемого |
| История изменений и версии | Хранятся прежние значения элементов и документов | Ограничить число хранимых версий |
| Сессии и статистика | Копятся при включённом модуле статистики | Чистить по расписанию или отключить сбор, если не используется |
| Файлы внутри базы | Вложения сохранены в базу, а не на диск | Перенести хранение файлов на диск |
Порядок чистки
- Снимите копию базы. Чистка необратима, а восстановить одну таблицу из полной копии проще, чем объяснять, куда делась история.
- Ограничьте накопление в настройках — срок хранения журнала, число версий. Иначе через месяц вернётесь к тому же.
- Удалите старые записи штатными средствами портала, а не запросами к таблицам напрямую: за одной таблицей обычно тянутся связанные.
- Пересоберите таблицы, чтобы файл на диске действительно уменьшился. Операция требует свободного места и времени.
- Проверьте работу портала и резервное копирование.
Чего делать нельзя
- Удалять строки запросами наугад. В портале почти всё связано: удалённая запись в одной таблице оставляет ссылки в трёх других, и это всплывает через недели в виде странных ошибок.
- Чистить таблицы, назначение которых неизвестно. Если название ни о чём не говорит, сначала выясните, что в ней, и только потом трогайте.
- Удалять файлы базы на диске — база после этого не поднимется.
Чтобы не возвращаться к этому
Настройте срок хранения журнала и число версий сразу после внедрения, храните вложения на диске, а не в базе, и следите за размером: рост базы на десятки процентов в месяц — повод разобраться, а не ждать, пока кончится место.
Если место кончается не из-за базы, смотрите разбор того, что чистить на диске.
Частые вопросы
Удаление строк не уменьшило файл базы. Почему?
База освобождает место внутри своих файлов, но не отдаёт его системе сама. Чтобы файл уменьшился, таблицу нужно пересобрать штатной командой базы — и на это нужно свободное место, сопоставимое с размером таблицы.
Можно ли чистить журнал событий?
Да, это одна из самых тяжёлых таблиц, и хранить в ней годы истории незачем. Настройте срок хранения в административной части, чтобы она не росла заново.
Поисковый индекс занимает больше самой базы. Это нормально?
Так бывает на сайтах с большим каталогом. Индекс пересоздаётся, поэтому его чистят и перестраивают заново — но делать это нужно в спокойное время, перестроение нагружает сервер.