Wednesday, September 8, 2010

MySQL性能优化10 - OPTIMIZE

[cci lang="mysql"]OPTIMIZE TABLE[/cci] 是指对表进行优化。如果已经删除了表的一大部分数据,或者如果已经对含有可变长度行的表(含有 VARCHAR 、 BLOB 或 TEXT 列的表)进行了很多更改,就应该使用 [cci lang="mysql"]OPTIMIZE TABLE [/cci]命令来进行表优化。这个命令可以将表中的空间碎片进行合并,并且可以消除由于删除或者更新造成的空间浪费。 [cci lang="mysql"]OPTIMIZE TABLE[/cci] 命令只对 MyISAM 、 BDB 和 InnoDB 表起作用。表优化的工作可以每周或者每月定期执行,对提高表的访问效率有一定的好处,但是需要注意的是,优化表期间会锁定表,所以一定要安排在空闲时段进行。

优化表的语法如下:

[cc lang="mysql"]OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...[/cc]

下面的例子是使用 optimize 命令优化表 test3 :
[cc lang="mysql"]
mysql> optimize table test3;

+------------+----------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+------------+----------+----------+----------+
| test.test3 | optimize | status | OK |
+------------+----------+----------+----------+

1 row in set (0.29 sec)[/cc]

No comments:

Post a Comment