经过磁盘数据如何加载到mysql中以及在InnoDB中执⾏更新操作流程执⾏了⼀段时间后,直到InnoDB缓冲池中的内存即将不够⽤了,此时如果再来⼀条sql语句的更新操作,要想成功把磁盘中的数据加载到缓存⻚中,就需要先清理下内存中的缓存⻚了。
通过之前提到的lru链表,可以找到lru链表表尾的节点,这些节点之所以在表尾,是因为基本上没什么⼈访问它们,那它们在内存不够⽤的场景下,当然要被优先给清理掉啊;因为flush链表的节点也在lru链表中,此时在缓存⻚清理时需要做⼀个简单的判断:若缓存⻚既在lru表尾的节点同时也在flush链表中,就需要先把脏⻚给刷盘了,然后再释放掉缓存⻚的内存,保证那些事务修改的数据能够落库;若缓存⻚不在flush链表,那更简单直接释放缓存⻚内存,然后将这些释放完内存缓存⻚的描述信息,重现给添加到free链表中,完成⼀次⼤的循环(free链表->lru链表->flush链表->free链表),如下图所示:
未经允许不得转载:任鹏个人博客 » 缓冲池内存不⾜触发脏⻚刷盘
最新评论
Forex wiki. https://lt.forex-stock-bitcoin-brokers.com
Magnificent items from you, man. I have take note your stuff
Following on from the 3rd March Meetings held by economic de
It is remarkable, rather valuable message dfgdlfg2131.32
一般都会有一个沙盒期的,过了沙盒期就会慢慢放出来
百度不收录是应为是新站的原因吗?
The spike in consumer prices that left inflation at a four-d