mysql 中 innodb_old_blocks_pct_innodb_old_blocks_pct 和 key_cache_division_limit

这两个东西是什么呢?为什么把他俩放到一起来讲?

因为他们虽然是不同的参数,但是他们都与一种技术有关,叫做缓存(cache).

innodb_old_blocks_pct 是innodb buffer pool 对应的参数.

key_cache_dividion_limit 是 key cache 对应的参数.

下面讲讲这两个cache的基本原理.

cache在整体表现上是内存的一个链表,这个链表是保存硬盘上的数据的,详细请自行 百度.

在cache大家族中,有一类结构叫做LRU(Last Recent Used). 有一个对于这个结构的使用的算法,叫做Midpoint Insertion Strategy.

这个算法就会控制cache的命中率,基本上来说,这个算法是将一个LRU链表分为热端和冷端.热端只有经过一定的失效期才能被分配到冷端,

而冷端经过一定的失效期会被请出队列.新进的数据只会被放置到冷端,在冷端多次命中后才能被放置到热端.冷端热端都属于cache, 命中后性能会很高.

0818b9ca8b590ca3270a3433284dd417.png

那么上面的两个参数是控制什么的呢?

是控制冷端和热端的比例的参数

那么,比较好的配置是如果已知活跃数据是占总cache 的百分比,就设置参数为 1-活跃数据量/cache大小.

还有两个参数 key_cache_age_threshold和innodb_old_block_time是定义多久才是从热端到冷端的出队条件,是控制cache变化快慢的参数.

就说这些吧,关键字:Midpoint Insertion Strategy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值