Очистка таблиц базы данных сервера

При длительной работе сервера бывает, что со временем база данных разрастается до огромных размеров (50 Гб и более). Уменьшить размер базы данных бывает не просто, однако есть возможность на время остановить ее рост.

При работе с базой понадобится программа-администратор MySQL , например HeidiSQL. Как подключиться этой программой к базе, можно узнать здесь.

Первое, на что следует обратить внимание после подключения БД, это таблица с логами f_logs. Она бывает довольно больших размеров и очистить ее можно разом, используя команду TRUNCATE TABLE f_logs

Использовать команду delete мы не рекомендуем по причине того, что удаление будет происходить довольно долго. После очистки таблицы размер БД не изменится, однако будет зарезервировано место для новых данных и рост базы на время прекратится.

Второе - при удалении объектов с данными размер базы тоже не меняется. Мы рекомендуем еще в процессе установки сервера изменить файловую структуру базы данных, описание здесь. В таком случае для данных каждого объекта в базе данных будет персональная табличка вида f_d_xx , где хх - внутренний идентификатор объекта. Узнать этот идентификатор можно из таблички f_objects и если объект был удален и в таблице f_objects нет строки с идентификатором этого объекта (столбец object_id), а также отсутствует табличка f_d_хх , то можно вручную удалить файлы таблиц с данными для этого объекта.

Узнать расположение этих файлов можно с помощью файла my.ini , для этого в файле параметр datadir (по умолчанию путь к базе C:/ProgramData/MySQL/MySQL Server 5.5/Data/имя базы данных/ ). Сами файлы называются f_d_хх.ibd и f_d_хх.frm , где хх - внутренний идентификатор объекта.