这篇文章主要介绍了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中数据量更改统计数据收集的逻辑分析”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!