mysql如何管理innodb元数据_1.1.20 可动态关闭InnoDB更新元数据的统计功能

1.1.20 可动态关闭InnoDB更新元数据的统计功能

innodb_stats_on_metadata参数的作用是:每当查询information_schema元数据库里的表时,InnoDB还会随机提取其他数据库每个表索引页的部分数据,从而更新information_schema.STATISTICS表,并返回刚才查询的结果。当你的表很大,且数量很多时,耗费的时间就会很长,很多经常不访问的数据也会进入Innodb_Buffer_Pool缓冲池里,那么就会污染缓冲池,并且ANALYZE TABLE和SHOW TABLE STATUS语句也会造成InnoDB随机提取数据。

从MySQL5.5.X版本开始,你可以动态关闭innodb_stats_on_metadata,不过默认是开启的。关闭方式如下:

set globalinnodb_stats_on_metadata=OFF;

可能有人会问,如果我关闭了该功能,会不会造成数据统计的不精确?

答案是:不会的。下面用一个例子来加以证实。

通过数据字典查看所有数据库大小,命令如下:

select sum(data_length+index_length)/1024/1024/1024 from

information_schema.tables;

具体操作如图1-17和图1-18所示。

049089475dd851c14112dc9c5a43947c.png

关闭元数据统计后,查询快了近2倍,结果却跟之前的一样。如果你的表很大,并且很多,那么查询的速度相差得就会更大。

关于innodb_stats_on_metadata参数的介绍,请参见MySQL5.5手册:

b9530f432e1b6874a209533deb6703a5.png

【责任编辑:book TEL:(010)68476606】

点赞 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值