注目キーワード
  1. 技術
  2. 広告
  3. IDFA
  4. PHP
  5. WordPress

OPTIMIZEした際に、Table does not support optimize, doing recreate + analyze instead と出てきたときの対処法

テーブルのOPTIMIZEをしたら、Table does not support optimize, doing recreate + analyze insteadと出てきた

MySQLTunerを使ってデータベースのチェックをした際に、テーブルのOPTIMIZEをした方がパフォーマンスが良くなるよと言われました。

    Run OPTIMIZE TABLE to defragment tables for better performance
      OPTIMIZE TABLE `hoge`.`hoge`; -- can free 55 MB
      OPTIMIZE TABLE `hoge`.`hoge`; -- can free 20 MB
      OPTIMIZE TABLE `hoge`.`hoge`; -- can free 125 MB
    Total freed space after theses OPTIMIZE TABLE : 200 Mb

OPTIMIZEをすることで、200Mも最適化できるとのことなので、対応を進めていきます。

$ OPTIMIZE TABLE `hoge`.`hoge`;
+------------------------+----------+----------+-------------------------------------------------------------------+
| Table                  | Op       | Msg_type | Msg_text                                                          |
+------------------------+----------+----------+-------------------------------------------------------------------+
| hoge.hoge | optimize | note     | Table does not support optimize, doing recreate + analyze instead |
| hoge.hoge | optimize | status   | OK                                                                |
+------------------------+----------+----------+-------------------------------------------------------------------+

Table does not support optimize, doing recreate + analyze insteadと出てきました。

OPTIMIZEはできているので問題ない

Table does not support optimize, doing recreate + analyze insteadと出てくるのは、InnoDBのテーブルをOPTIMIZEしようとしたときに、内部的にはOPTIMIZEではなく、ALTER TABLEで対応を行なっており、再度テーブルを作成して、インデックスの貼り直しを行なっています。そのため、その処理の記録として、note というメッセージタイプで、該当のテーブルはOPTIMIZEはサポートしていないけど、代わりに再度テーブルを作成して、インデックスの貼り直しをしているよ、と表示しています。

そのため、statusでOKが出ていれば、問題なく完了です。