mysql 提供了分析表 检查表 和优化表的语句,分析表主要是分析关键字的分部,检查表主要是检查表是否存在错误, 优化表则是消除删除或更新造成的空间浪费
1.分析表 analyze table
mysql 提供了 analyze table语句分析表,analyze table 语句基本语法如下:
analyze [local | no_write_to_binlog] table table_name [,table_name]
local 关键字是 no_write_to_binlog 的别名,二者都是执行过程不写入二进制日志,这里表名可以有多个, 注意使用analyze table分析表的过程中,数据库系统会对表添加只读锁, 也就是在分析过程中只能读取表中记录,而不能更新和插入记录,该操作能分析 InnoDB,BDB,和 MyISAM表。
analyze local table out_crm_user_day;

分析表其实真正要做的是对表的cardinality(散列程度)进行统计更新,因为它决定是否走索引,如果cardinality和实际数据严重不符,会导致索引失效。
show index from out_crm_user_day;

分析表其实就是让上图中的cardinality比较准确

2993

被折叠的 条评论
为什么被折叠?



