Table does not support optimize, doing recreate + analyze instead
優化InnoDb 表提示錯誤!
------------------------------------------------
That's really an informational message.
Likely, you're doing OPTIMIZE on an InnoDB table (table using the InnoDB storage engine, rather than the MyISAM storage engine).
InnoDB doesn't support the OPTIMIZE the way MyISAM does. It does something different. It creates an empty table, and copies all of the rows from the existing table into it, and essentially deletes the old table and renames the new table, and then runs an ANALYZE to gather statistics. That's the closest that InnoDB can get to doing an OPTIMIZE.
The message you are getting is basically MySQL server repeating what the InnoDB storage engine told MySQL server:
Table does not support optimize is the InnoDB storage engine saying...
"I (the InnoDB storage engine) don't do an OPTIMIZE operation like my friend (the MyISAM storage engine) does."
"doing recreate + analyze instead" is the InnoDB storage engine saying...
"I have decided to perform a different set of operations which will achieve an equivalent result."
--------------------------------
因為這種optimize 是支持Myisam 表不支持InnoDb,需要新建一張表把數據復制進去。
Best option is create new table with same properties
CREATE TABLE <NEW.NAME.TABLE> LIKE <TABLE.CRASHED>; INSERT INTO <NEW.NAME.TABLE> SELECT * FROM <TABLE.CRASHED>;
Rename NEW.NAME.TABLE and TABLE.CRASH
RENAME TABLE <TABLE.CRASHED> TO <TABLE.CRASHED.BACKUP>; RENAME TABLE <NEW.NAME.TABLE> TO <TABLE.CRASHED>;
After work well, delete
DROP TABLE <TABLE.CRASHED.BACKUP>;
文章來源:劉俊濤的博客歡迎關注公眾號、留言、評論,一起學習。
__________________________________________________________________________________
若有幫助到您,歡迎捐贈支持,您的支持是對我堅持最好的肯定(*^_^*)