Идеята е да оптимизираме тези таблици само които са оптимизирани и MyISAM разбира се :)
С една заявка можем да изведем тези таблици:
mysql> SELECT TABLES.TABLE_SCHEMA,TABLES.TABLE_NAME,TABLES.DATA_FREE,TABLES.ENGINE FROM INFORMATION_SCHEMA.TABLES WHERE TABLES.DATA_FREE!=0;
+-----------------+----------------+-----------+--------+
| TABLE_SCHEMA | TABLE_NAME | DATA_FREE | ENGINE |
+-----------------+----------------+-----------+--------+
| database1 | table_confirm | 196 | MyISAM |
| database1 | table_sessions | 29460 | MyISAM |
| database1 | table_users | 24 | MyISAM |
| database2 | table2 | 56 | MyISAM |
+-----------------+----------------+-----------+--------+
4 rows in set (0.04 sec)
В моя случай имам 4(понеже ги оптимизирам доста често)
Ето и как се оптимизира конкретна таблица:
mysql> optimize table database1.table_confirm;
+----------------------------+----------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+----------------------------+----------+----------+----------+
| database1.table_confirm | optimize | status | OK |
+----------------------------+----------+----------+----------+
PS: Всичко това може да си го автоматизирате с perl,bash,php или там каквото ви е на сърце :). Успех
MySQL- Извеждане на неоптимизираните таблици- fragmented tables,