Mysql 5.7中数据量更改统计数据收集的逻辑分析

这篇文章主要介绍了Mysql 5.7中数据量更改统计数据收集的逻辑分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
 
一、持久化(PERSISTENT))与非持久化统计数据(TRANSIENT)
Mysql统计数据分为持久化和非持久化
 
持久化统计数据
存储在mysql.innodb_index_stats和mysql.innodb_table_stats中
非持久化统计数据
存储在information_schema.indexes和information_schema.tables中
前者是innodb表后者是memory表。他们受到参数innodb_stats_persistent的控制,默认为ON。
 
二、持久化统计数据的更改方式。
我在看更改逻辑的时候,发现非持久化统计数据是直接更新的或者说是同步更新的。但是持久化统计数据应该是异步更新的,看起来是典型的生产者消费者模型。Mysql中有一个专门的后台线程来负责收集统计数据如下:
 
mysql> select name,thread_id from performance_schema.threads where NAME like '%dict_stats_thread%' \G
*************************** 1. row ***************************
     name: thread/innodb/dict_stats_thread
thread_id: 25
感谢你能够认真阅读完这篇文章,希望小编分享的“Mysql 5.7中数据量更改统计数据收集的逻辑分析”这篇文章对大家有帮助。

dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。