Здравствуйте столкнулся с проблемой связной с освобождением памяти на запрос. Текший код выглядят перемерено так:
$db->query("SELECT * FROM `table`")->fetch_array(MYSQLI_ASSOC);
только сегодня исполняя SHOW FULL PROCESSLIST; понял что так нельзя и нужно делать примерно так:
$result = $db->query("SELECT * FROM `table`");
$data = $result->fetch_array(MYSQLI_ASSOC);
$result->free(); // Освобождает память от результата запроса
Если не проделывать эти действия очень часто в консоли появляется Warning: Error while sending QUERY packet. PID=19797 или же в противном случае MySQL server has gone away
Возможно ли сделать так чтобы после query запроса исполнялся ->free()? Есть ли для этого какие то иные меры
Решение немного не стандартное) крон всегда решает проблемы. Исполняется раз в 30 секунд:
$sql = $this->db->query("SELECT * FROM `table` LIMIT 1");
$data = $sql->fetch_assoc();
$sql->free();
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники