Сколько занимает журнал
Журнал изменений растёт вместе с сайтом, и это первое, о чём спрашивают перед покупкой.
Из чего состоит запись
| Часть записи | Что это | Вклад в размер |
|---|---|---|
| Служебные поля | дата, действие, сущность, пользователь, сайт, адрес страницы | десятки байт |
| Старые и новые значения | только изменившиеся поля | от десятков байт до килобайтов |
| Стек вызова | цепочка файлов и строк | обычно самая крупная часть |
Значения и стек хранятся отдельными полями в базе, рассчитанными на объёмные данные.
Порядок величин
Точную цифру даёт только замер на своих данных, но порядок такой: обычная запись об изменении элемента инфоблока с сохранённым стеком в сотню шагов занимает единицы килобайтов.
Отсюда простая прикидка: тысяча изменений в сутки — единицы мегабайтов в сутки. Магазин, который еженощно обменивается с 1С и трогает десять тысяч товаров, за неделю набирает сотни мегабайтов.
Как замерить у себя
Включите журнал на сутки обычной работы и посмотрите размер его таблиц штатными средствами базы:
SELECT table_name, ROUND(data_length / 1024 / 1024) AS mb
FROM information_schema.tables
WHERE table_schema = DATABASE() AND table_name LIKE 'devbx_entity_log%';
Полученную цифру умножьте на срок хранения — это и есть ожидаемый объём в установившемся режиме.
Что делать с большим объёмом
Порядок действий — на следующей странице. Коротко: сначала уменьшают стек, потом исключают лишние поля и сущности, и только потом сокращают срок хранения — он влияет на пользу журнала сильнее всего.