ANALYZE TABLE Syntax

来源:互联网 发布:windows驱动开发视频 编辑:程序博客网 时间:2024/06/07 03:53
ANALYZE [NO_WRITE_TO_BINLOG | LOCAL] TABLE tbl_name [, tbl_name] ...

ANALYZE TABLE分析并且存储一个表和索引的统计信息。在分析的过程中,表被只读锁锁定(InnoDB and MyISAM)。这个语句在InnoDB, NDB, 和MyISAM下的表有效。

需要注意的是,当启用了innodb_stats_persistent选项时,在给表加载大量数据或创建所以之后必须执行ANALYZE TABLE

MySQL会根据标的统计信息决定如何对查询进行改写。进而指导优化器决定使用哪些索引。

要想执行这个命令需要有SELECTINSERT权限。

该命令同样支持对分区表进行统计,你可使用如下语法来分析表的一个或多个分区:

ALTER TABLE ... ANALYZE PARTITION

ANALYZE TABLE返回结果说明:

Column value Table 表名称 Op analyze Msg_type status, error, info, note, or warning Msg_text An informational message

手工收集统计信息需要调用analyze table,但若表自上次analye至今没有任何改动,即便调用此命令实际也不会收集统计信息,需先让统计信息过期。

可以使用以下语句查看当前存储索引统计信息:

SHOW {INDEX | INDEXES | KEYS}    {FROM | IN} tbl_name    [{FROM | IN} db_name]    [WHERE expr]

默认情况下,ANALYZE TABLE被写入binarylog,所以会同步到slaves上。


0 0
原创粉丝点击