Проверка размера пакета базы
Запись журнала хранит старые и новые значения полей и стек вызова. Для сущности с длинным
описанием или большим набором свойств запись выходит объёмной — и упирается в настройку базы
max_allowed_packet: она ограничивает размер одного запроса.
Запрос сверх ограничения база отклоняет. Без проверки это выглядело бы как молчаливая потеря записи: изменение произошло, а в журнале его нет.
Что делает настройка
При включённой проверке модуль сравнивает размер запроса с ограничением базы до записи и, если места не хватает, сообщает об этом вместо тихой потери.
Выключают её редко — например, когда точно известно, что ограничение базы велико, а лишняя проверка на каждой записи не нужна.
Что делать при срабатывании
Три пути, от простого к сложному:
- Уменьшить стек. «Лимит трассировки стека» с 100 до 20 заметно уменьшает запись, а для разбора обычно хватает и двадцати шагов.
- Исключить тяжёлые поля при регистрации сущности — длинное описание товара в журнале нужно редко.
- Поднять
max_allowed_packetв настройках базы, если объёмные значения действительно нужны в журнале.
Первое решает случай почти всегда: стек длиннее самих значений чаще, чем кажется.