ANALYZE TABLE Syntax

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返回结果说明:

Columnvalue
Table表名称
Opanalyze
Msg_typestatus, error, info, note, or warning
Msg_textAn informational message

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

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

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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值