OPTIMIZE TABLEを実行する代わりに、以下の様にALTER TABLEを実行するケースも多いと思います。
バックグラウンドでどの様に処理しているかを聞かれる事も多いのでこちらにメモしておきます。
alter table sbtest6 engine=InnoDB, ALGORITHM=INPLACE, LOCK=NONE;
OPTIMIZE TABLE中の一時テーブル処理
# stat city_sample1.ibd
File: ‘city_sample1.ibd’
Size: 5272240128 Blocks: 10297376 IO Block: 4096 regular file
Device: 10301h/66305d Inode: 96469157 Links: 1
Access: (0640/-rw-r-----) Uid: ( 995/ mysql) Gid: ( 1001/ mysql)
Access: 2023-04-21 22:33:34.264902911 +0000
Modify: 2023-04-21 23:27:00.503985634 +0000
Change: 2023-04-21 23:27:00.503985634 +0000
Birth: -
# /usr/local/mysql/bin/mysql -u root -p -e "optimize table shell.city_sample1"
Enter password: …
[さらに読む]