b_user_session как почистить

3k
Алексей,
b_user_session как почистить
b_user_session как почистить

При включении хранения сессий в БД, таблица быстро разрастается, если механизм очистки отключен в настройках php.

При включении хранения сессий в БД, таблица быстро разрастается, если механизм очистки отключен в настройках php.

Есть возможность вручную почистить таблицу. Например с помощью метода:

\Bitrix\Main\Session\Handlers\Table\UserSessionTable::deleteOlderThan(86400);

Выполнив данный код, удалятся все сессии старше суток. Если сессий насохранялось очень много, то код будет выполняться долго.

Результат выполнения команды

Имеет смысл сделать бекап БД и почистить таблицу выполнив sql запрос.

Если у вас таблица постоянно растет и не очищается самостоятельно, проверьте настройки php, должно быть примерно так:

session.gc_probability = 1
session.gc_divisor = 1000 // шанс запуска сборщика "мусора", расчитывается как gc_probability/gc_divisor (1/1000 = 0.1%)
session.gc_maxlifetime = 1440 // время жизни (24 минуты), после, сессия считается "мусором"

Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.

Опубликовано 27 декабря 2022 | Обновлено 16 июня 2023
БД, костыли, таблица, сессия
Поделиться
Комментарии
❮…❯
Авторизуйтесь чтобы получать уведомления об ответе
При включении хранения сессий в БД, таблица быстро разрастается, если механизм очистки отключен в настройках php.