ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL中analyze table的作用是?生产上操作会有什么风险?

2020-06-16 16:54:07  阅读:851  来源: 互联网

标签:执行 索引 MyISAM MySQL table analyze


MySQL中analyze table的作用是?生产上操作会有什么风险?


一、analyze table的作用
    1、analyze table 会统计索引分布信息。
    2、对于 MyISAM 表,相当于执行了一次 myisamchk --analyze
    3、支持 InnoDB、NDB、MyISAM 等存储引擎,但不支持视图(view)
    4、执行 analyze table 时,会对表加上读锁(read lock)
    5、该操作会记录binlog



二、生产上操作的风险
    1、analyze table的需要扫描的page代价粗略估算公式:sample_pages * 索引数 * 表分区数。
    2、因此,索引数量较多,或者表分区数量较多时,执行analyze table可能会比较费时,要自己评估代价,并默认只在负载低谷时执行。
    3、特别提醒,如果某个表上当前有慢SQL,此时该表又执行analyze table,则该表后续的查询均会处于waiting for table flush的状态,严重的话会影响业务,因此执行前必须先检查有无慢查询。

备注:上面多次提到MyISAM,仅是本次总结所需,并不推荐大家使用MyISAM引擎,使用InnoDB才是正道。

 

标签:执行,索引,MyISAM,MySQL,table,analyze
来源: https://www.cnblogs.com/zhouwanchun/p/13141882.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有