23.7 优化数据表
MySQL支持使用OPTIMIZE TABLE语句来优化数据表,OPTIMIZE TABLE语句主要用来优化删除和更新数据造成的磁盘文件碎片,语法格式如下:
OPTIMIZE [NO_WRITE_TO_BINLOG | LOCAL]
TABLE tbl_name [, tbl_name] ...
其中,LOCAL和NO_WRITE_TO_BINLOG含义与ANALYZE TABLE语句相同,不再赘述。
使用OPTIMIZE TABLE语句优化数据表时,MySQL会为数据表添加读锁。例如,优化t_goods数据表。
mysql> OPTIMIZE TABLE t_goods \G
*************************** 1. row ***************************
Table: goods.t_goods
Op: optimize
Msg_type: note
Msg_text: Table does not support optimize, doing recreate + analyze instead
*************************** 2. row ***************************
Table: goods.t_goods
Op: optimize
Msg_type: status
Msg_text: OK
2 rows in set (0.14 sec)
注意:OPTIMIZE TABLE语句只能够优化数据表中VARCHAR、BLOB或TEXT类型的字段。