Как очистить или изменить размер файла ibtmp1 в MySQL?

MySQL 5.7 представляет новый файл ibtmp1 для хранения временных данных в InnoDB для повышения производительности.

Но я отметил, что его размер постоянно увеличивается. На моем сервере db его размеры увеличиваются до 92 ГБ.

Есть ли способ уменьшить размер или удалить файл без перезапуска сервера?

Спасибо

Ответ 1

Однажды созданный ibtmp1 нельзя сжать никаким способом без перезапуска службы mysql.

Есть два способа справиться с этим:

Меры предосторожности: во время запуска сервера вы должны ограничить размер этого файла следующим образом:

 innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:5G

где max 5G означает, что размер этого файла не должен превышать 5 ГБ.

Вылечить : если файл уже создан, необходимо перезапустить службу:

SET GLOBAL innodb_fast_shutdown = 0;
Shutdown MySQL
remove ibtmp1
start MySQL.

Docs: https://dev.mysql.com/doc/refman/5.7/en/innodb-temporary-tablespace.html