MySQL:slave 延迟一列 外键检查和自增加锁
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本文没有太多可读性,完全是自己的笔记一、现象延迟大,大事物。表结构image.png无IOimage.pngSQL THREAD占用CPU 100%image.png二、pscak 采样采样30个点外
千家信息网最后更新 2026年11月03日MySQL:slave 延迟一列 外键检查和自增加锁
本文没有太多可读性,完全是自己的笔记
一、现象
延迟大,大事物。
表结构
image.png
无IO
image.png
SQL THREAD占用CPU 100%
image.png
二、pscak 采样
采样30个点
外键检查 占70%
image.png
自增锁获取 占30%
image.png
三、自增锁获取逻辑
逻辑如下其实也是innodb_autoinc_lock_mode参数的作用
switch (lock_mode) { case AUTOINC_NO_LOCKING://innodb_autoinc_lock_mode=2 /* Acquire only the AUTOINC mutex. */ dict_table_autoinc_lock(m_prebuilt->table); break; case AUTOINC_NEW_STYLE_LOCKING: // innodb_autoinc_lock_mode=1 注意这里没有break 巧妙的完成了逻辑 /* For simple (single/multi) row INSERTs, we fallback to the old style only if another transaction has already acquired the AUTOINC lock on behalf of a LOAD FILE or INSERT ... SELECT etc. type of statement. */ if (thd_sql_command(m_user_thd) == SQLCOM_INSERT || thd_sql_command(m_user_thd) == SQLCOM_REPLACE) { dict_table_t* ib_table = m_prebuilt->table; /* Acquire the AUTOINC mutex. */ dict_table_autoinc_lock(ib_table); /* We need to check that another transaction isn't already holding the AUTOINC lock on the table. */ if (ib_table->n_waiting_or_granted_auto_inc_locks) { /* Release the mutex to avoid deadlocks. */ dict_table_autoinc_unlock(ib_table); } else { break; } } /* Fall through to old style locking. */ case AUTOINC_OLD_STYLE_LOCKING://innodb_autoinc_lock_mode=0 触发 DBUG_EXECUTE_IF("die_if_autoinc_old_lock_style_used", ut_ad(0);); error = row_lock_table_autoinc_for_mysql(m_prebuilt); //这个函数上表上的自增锁 if (error == DB_SUCCESS) { /* Acquire the AUTOINC mutex. */ dict_table_autoinc_lock(m_prebuilt->table); } break; default: ut_error; }binlog row格式,innodb_autoinc_lock_mode=1 按理说不会触发row_lock_table_autoinc_for_mysql加自增锁。不知道什么原因。当前知道:
如果主库语句模式,从库innodb_autoinc_lock_mode=1 ,insert select 肯定会触发。
如果从库 innodb_autoinc_lock_mode=0 肯定会触发。
但是都不满足。疑惑。
四、方案
删除外键
innodb_autoinc_lock_mode设置为2,从逻辑来看肯定不会做row_lock_table_autoinc_for_mysql了。
作者微信:
微信.jpg
逻辑
肯定
延迟
检查
巧妙
上表
事物
作用
作者
函数
原因
参数
可读性
按理说
方案
格式
模式
现象
笔记
结构
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网黑科技
互联网为科技
科技类互联网
互联网科技的发展
中国互联网科技发展
狮子座互联网科技有限公司
上海卓越科技 互联网
哈尔滨新华互联网科技
四个字互联网科技公司取名
安控科技rtu产品工业互联网
须眉科技是互联网公司吗
互联网大会黑科技排名
受益于互联网科技的高速发展
深圳育鹏互联网科技有限公司招聘
内蒙古九一互联网科技
中科明德北京互联网科技
张召忠谈中国互联网科技
互联网科技股为什么大涨
工业互联网科技创业
美国五大互联网科技公司市值多少
手磨咖啡
互联网科技公司税收优惠
互联网与科技发展
科技信息互联网
科技类互联网
互联网金融科技委员会
北京大学互联网科技怎么样
苏州铭阳互联网科技有限公司
从那以后互联网科技有限公司
杭州科技互联网公司有哪些
- 上一篇
Oracle启动监听报错:The listener supports no services解决
Oracle启动监听报错:The listener supports no services解决及ora-12514 未注册上服务问题。Oracle11g服务器重启系统之后,出现了几个莫名的报错,下面
- 下一篇
MySQL中relay_log_info_repository与sync_relay_log_info有什么作用
本篇内容介绍了"MySQL中relay_log_info_repository与sync_relay_log_info有什么作用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就