默认是OFF,也就是说InnoDB的统计数据默认是存储到内存的,之
后的版本中innodb_stats_persistent的值默认是ON,也就是统
计数据默认被存储到磁盘中。
不过InnoDB默认是以表为单位来收集和存储统计数据的,也就是说
我们可以把某些表的统计数据(以及该表的索引统计数据)存储在磁
盘上,把另⼀些表的统计数据存储在内存中。怎么做到的呢?我们可
以在创建和修改表的时候通过指定STATS_PERSISTENT属性来指明
该表的统计数据存储⽅式:
CREATE TABLE 表名 (...) Engine=InnoDB,
STATS_PERSISTENT = (1|0);
ALTER TABLE 表名 Engine=InnoDB, STATS_PERSISTENT =
(1|0);
当STATS_PERSISTENT=1时,表明我们想把该表的统计数据永久的
存储到磁盘上,当STATS_PERSISTENT=0时,表明我们想把该表的
统计数据临时的存储到内存中。如果我们在创建表时未指定
STATS_PERSISTENT属性,那默认采⽤系统变量
innodb_stats_persistent的值作为该属性的值。
基于磁盘的永久性统计数据
当我们选择把某个表以及该表索引的统计数据存放到磁盘上时,实际
上是把这些统计数据存储到了两个表⾥:
文档被以下合辑收录
评论