千家信息网

Metadata Lock在MySQL数据库中有什么作用

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,下文主要给大家带来Metadata Lock在MySQL数据库中有什么作用,希望这些内容能够带给大家实际用处,这也是我编辑Metadata Lock在MySQL数据库中有什么作用这篇文章的主要目的。好
千家信息网最后更新 2026年11月03日Metadata Lock在MySQL数据库中有什么作用

下文主要给大家带来Metadata Lock在MySQL数据库中有什么作用,希望这些内容能够带给大家实际用处,这也是我编辑Metadata Lock在MySQL数据库中有什么作用这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。

在主库上truncate table后,发现从库延时开始增加,show processlist可见如下信息。


72105289 system user NULL Connect 2996302 Waiting for master to send event NULL 0 0

72105290 system user dbname Connect 491 Waiting for table metadata lock truncate table tblname 0 0


MySQL用metadata lock控制对于数据库对象的并发访问,和保证数据的一致性。MySQL中不能对一个正在使用的表执行DDL语句,就是通过获取表的metadata lock实现的,其阻止了表结构的变更。即,若表正被一个事务使用,在该事务结束前,另一个会话是不能对此表执行DDL的。


Waiting for table metadata lock,表明在truncate table之前已有事务在使用tblname表了,且该事务还没结束,从show processlist中看不到进一步的信息了。


但information_schema中的innodb_trx表可以提供正在InnoDB中运行着的事务的信息,如事务是否在等待锁、事务的开始时间、事务中正在运行的SQL等。


查看innodb_trx表,发现了一个事务,Id为90916563(trx_mysql_thread_id对应show processlist中的Id),开始时间是2019-02-12 13:26:56,在主库执行truncate table的时间是17:35,其运行的时间有些异常;另trx_query为NULL,可判断该事务很可能卡在这,未正常结束,阻止了truncate table的继续。


mysql> select * from INNODB_TRX \G

*************************** 1. row ***************************

trx_id: 146633268809

trx_state: RUNNING

trx_started: 2019-02-12 13:26:56

trx_requested_lock_id: NULL

trx_wait_started: NULL

trx_weight: 0

trx_mysql_thread_id: 90916563

trx_query: NULL

trx_operation_state: NULL

trx_tables_in_use: 0

trx_tables_locked: 0

trx_lock_structs: 0

trx_lock_memory_bytes: 1136

trx_rows_locked: 0

trx_rows_modified: 0

trx_concurrency_tickets: 0

trx_isolation_level: REPEATABLE READ

trx_unique_checks: 1

trx_foreign_key_checks: 1

trx_last_foreign_key_error: NULL

trx_adaptive_hash_latched: 0

trx_adaptive_hash_timeout: 0

trx_is_read_only: 0

trx_autocommit_non_locking: 0

1 row in set (0.00 sec)


从show processlist中看到Id为90916563线程的信息,其Time为1294。kill掉该线程,主从复制恢复正常。

90916563 dbname_read 192.168.2.36:63063 dbname Sleep 1294 NULL 100 100


若想查看metadata lock的详细信息,可借助Performance Schema下的metadata_locks表。

对于以上关于Metadata Lock在MySQL数据库中有什么作用,大家是不是觉得非常有帮助。如果需要了解更多内容,请继续关注我们的行业资讯,相信你会喜欢上这些内容的。

事务 数据 信息 数据库 时间 作用 内容 正在 运行 下文 线程 中看 一致 一致性 主从 实际 对此 对象 就是 废话 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 小米移动互联网科技园 广东万易互联网科技有限公司惠州分公司 哈尔滨大商圈互联网科技有限公司 美国互联网保险保险科技 中国互联网科技股 互联网医疗科技 万易互联网科技 安徽鑫晟辉互联网科技 南京欣网互联网科技 云创客互联网科技公司 乌鲁木齐新华智原互联网科技学校 明优互联网科技有限公司 科技互联网海报 江苏苏星互联网科技有限公司 山东大美朱楼互联网科技有限公司 宁波跨境商互联网科技有限公司 福建互联网展示科技馆设计 吉林省码上互联网科技电话 中国科技和美国互联网 绵阳真晨互联网科技有限公司 互联网科技名片 上海喔噻互联网科技有限公司 互联网的科技创新 央行互联网金融科技公司 佛山市翊博互联网络科技有限公司 科技互联网海报 黑科技 体验场景 互联网大会 互联网科技实习生岗位 互联网领先科技宣传片 长沙渺峰互联网科技有限公司
0