MySQL checkpoint执行时机

来源:这里教程网 时间:2026-03-01 16:46:59 作者:

之前的文章已经说过了在undo purge的情况下会有全量checkpoint,下面记录下其他情况checkpoint的执行时机 srv_master_do_active_tasks 这个函数会定时执行checkpoint

/* Make a new checkpoint */
if (cur_time % SRV_MASTER_CHECKPOINT_INTERVAL == 0) {
srv_main_thread_op_info = "making checkpoint";
log_checkpoint(TRUE, FALSE);
MONITOR_INC_TIME_IN_MICRO_SECS(
MONITOR_SRV_CHECKPOINT_MICROSECOND, counter_time);
}

srv_master_do_idle_tasks这个函数会在空闲的时候执行checkpoint

/* Make a new checkpoint */
srv_main_thread_op_info = "making checkpoint";
log_checkpoint(TRUE, FALSE);
MONITOR_INC_TIME_IN_MICRO_SECS(MONITOR_SRV_CHECKPOINT_MICROSECOND,
counter_time);

srv_master_do_shutdown_tasks 函数在shutdown的情况下会执行checkpoint

func_exit:
    /* Make a new checkpoint about once in 10 seconds */
srv_main_thread_op_info = "making checkpoint";
log_checkpoint(TRUE, FALSE);

log_check_margins 函数在检查redo log空间的时候,没有空间了,会执行checkpoint buf_dblwr_create在innodb 初始化创建doublebuffer 的时候会执行checkpoint recv_reset_logs reset log的时候会执行全量的checkpoint row_import_celanup 的时候会执行全量checkpoint fixup_tables_in_non_system_tablespace的情况会执行全量的checkpoint 有兴趣学习源码的加群一起学习啊 QQ:                700072075

相关推荐