diff --git a/mysql-8.0.19/storage/innobase/buf/buf0buf.cc b/mysql-8.0.19/storage/innobase/buf/buf0buf.cc index c251837d5..3282c744a 100644 --- a/mysql-8.0.19/storage/innobase/buf/buf0buf.cc +++ b/mysql-8.0.19/storage/innobase/buf/buf0buf.cc @@ -4111,8 +4111,11 @@ buf_block_t *Buf_fetch::single_page(bool wait_for_read) { buf_page_mutex_exit(block); } - - if (m_mode != Page_fetch::PEEK_IF_IN_POOL) { + + if (m_mode != Page_fetch::PEEK_IF_IN_POOL && + (block->page.zip.data || + buf_block_get_io_fix_unlocked(block) != BUF_IO_WRITE || + block->page.flush_type != BUF_FLUSH_LIST)) { buf_page_make_young_if_needed(&block->page); } }