这一章主要讲如何收集统计数据
13.1
统计数据根据存储方式可分为永久存储的和暂时存储的。
innodb中有一个系统变量innodb_stats_persistent来控制是永久还是临时存储。
5.6.6版本前,默认是临时存储。之后改为默认永久存储。
当然,我们可能希望针对某些表做一些特别的配置。比如默认存在磁盘里,但就让这个表的统计数据驻留在内存中。
具体地,可以这样写
create table xxx ......Engine=InnoDB, STATS_PERSISTENT = (1|0);
alter table xxx ...... Engine=InnoDB, STATS_PERSISTENT = (1|0);
当STATS_PERSISTENT=1时,表示存储在磁盘上。
如果创建表的时候没有指定STATS_PERSISTENT,则采用系统变量innodb_stats_persistent的值。
13.2
这一节介绍基于磁盘的统计数据。
当我们选择把统计数据放到磁盘里,其实本质就是存放到两个表里。
可见,一个是关于表的,另一个是关于索引的。
innodb_table_stats
先来看看表中各个列
这个表的主键是(database_name, table_name),也就是innodb_table_stats表的每个记录代表一个表的统计信息。
下面看一下表里的内容。