MySQL — оптимизация таблиц

Проблема возникла в связи с разросшейся базой zabbix. mysqltuner.pl посоветовал «Run OPTIMIZE TABLE to defragment tables for better performance» — но как это сделать не сказал.

Надо выполнить две команды:

SELECT concat("OPTIMIZE TABLE ", table_schema,".",table_name,";")
FROM information_schema.tables
WHERE DATA_FREE > 0
INTO OUTFILE '/tmp/optimize.sql';

source '/tmp/optimize.sql';

/tmp/optimize.sql будет содержать команды оптимизации нужных таблиц.

Результаты:
Если до оптимизации было
InnoDB data size / buffer pool: 500M/1000.0M
то после стало
InnoDB data size / buffer pool: 282.1M/1000.0M

Leave a Reply