磁盘数据如何加载到mysql中,此时我们需要的数据已经从磁盘中加载到缓冲池中了,下⼀步当然就是执⾏更新操作了:
先对需要更新的那⾏数据加锁、原始数据写⼀份到redo log中便于可能的回滚操作、执⾏update操作,此时缓存⻚的数据就被更新了,当然就和磁盘中的数据⻚的数据就不⼀致了,这样的缓存⻚我们称之为脏⻚,如下图所示:
那么,如何才能知道缓冲池中,那些缓存⻚是脏⻚呢?如果能把脏⻚和空闲缓存⻚分离出来,我们就可以把那些脏⻚的数据及时给刷到磁盘中、再释放掉脏⻚内存,在内存不够的情况下不就可以重复利⽤了吗。这⾥InnoDB的设计⽅法类似free链表,设计了⼀个flush链表,也就是那些在缓冲池中被更新过数据的缓存⻚,这些缓存⻚的描述信息都会被添加到flush链表中(这⾥提到的free链表、lru链表、flush链表都是双向循环链表,且节点都为缓存⻚的描述信息,其中flush链表的节点同时也在lru链表中),如下图所示:
未经允许不得转载:任鹏个人博客 » 在InnoDB中执⾏更新操作
最新评论
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