关于 analyze table 的问题请教

[复制链接]
查看11 | 回复8 | 2008-12-2 13:51:42 | 显示全部楼层 |阅读模式
analyze table 执行后,系统会在后台多次不停的执行,还是只执行一次?
我对一个数据没有变化的表执行 show index from table_name
每次执行的结果都不一样,是什么原因,跟analyze table有关系吗?



回复

使用道具 举报

千问 | 2008-12-2 13:51:42 | 显示全部楼层
会有一点影响,analyze会做相关的统计信息,和整理内存的相关脏碎片操作,如果每次执行看到不同的index路径的话,看看是否在执行之前调整什么!
回复

使用道具 举报

千问 | 2008-12-2 13:51:42 | 显示全部楼层
analyze table会更新cardinality的数值,
我想知道的是analyze table是不停在后台进行统计分析,还是执行完一次就停止了?


回复

使用道具 举报

千问 | 2008-12-2 13:51:42 | 显示全部楼层
执行完一次啊,不会不停的去分析表的!
回复

使用道具 举报

千问 | 2008-12-2 13:51:42 | 显示全部楼层
虽然没有从手册上找到明显的说法,但是我觉得不会只在后台执行一次,肯定会有新的更新时就会自动进行索引统计更新,当然这个周期我还不知道有多少。
另外你说的每次show index from的结果不一致,我觉得原因是MySQL中索引统计值本身就是一个估值导致的。
回复

使用道具 举报

千问 | 2008-12-2 13:51:42 | 显示全部楼层
icer_repls 发表于 2013-1-10 13:06
虽然没有从手册上找到明显的说法,但是我觉得不会只在后台执行一次,肯定会有新的更新时就会自动进行索引统 ...

如果是自动执行的话,用什么命令可以取消?

回复

使用道具 举报

千问 | 2008-12-2 13:51:42 | 显示全部楼层
icer_repls 发表于 2013-1-10 13:06
虽然没有从手册上找到明显的说法,但是我觉得不会只在后台执行一次,肯定会有新的更新时就会自动进行索引统 ...

如果是自动执行的话,用什么命令可以取消?

回复

使用道具 举报

千问 | 2008-12-2 13:51:42 | 显示全部楼层
喃喃 发表于 2013-1-10 13:11
如果是自动执行的话,用什么命令可以取消?

这个为什么要取消?怕对影响线上服务?
我说了,根据经验我认为后台应该会周期更新,手册上原话也能看出一点信息:
If the table has not changed since the last ANALYZE TABLE statement, the table is not analyzed again.
回复

使用道具 举报

千问 | 2008-12-2 13:51:42 | 显示全部楼层
icer_repls 发表于 2013-1-10 13:15
这个为什么要取消?怕对影响线上服务?
我说了,根据经验我认为后台应该会周期更新,手册上原话也能看出 ...

分析后影响执行计划,效率变慢了
或者用什么命令可以将分析数据删除?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行