美文网首页
Innodb加锁信息查看

Innodb加锁信息查看

作者: 十毛tenmao | 来源:发表于2021-07-25 23:56 被阅读0次

    Innodb加锁分析时,需要查看当前加锁情况

    使用命令行

    show engine innodb status
    

    开启NNODB监控机制(InnoDB Monitors)

    mysql提供一套INNODB监控机制,用于周期性(每15钞)输出INNODB运行相关状态(INNODB运行状态、表空间状态、表状态等)到mysqld服务标准错误输出。另外,INNODB标准监控和锁监控,也可以通过命令:show engine innodb status输出到控制台。

    自mysql 5.6.16版本之后,可以通过设置系统参数(innodb_status_output_locks)的方式开启或者关闭标准监控。

    set GLOBAL innodb_status_output=ON;
    set GLOBAL innodb_status_output_locks=ON;
    

    查看表信息

    • 开启performance_schema
      修改performance_schema参数需要重启mysql
    [mysqld]
    performance_schema=ON
    

    分别查看事务的锁信息,以及锁等待信息,mysql8与之前的版本查询的表不一样,是在performance_schema库中,表名也变成了data_locksdata_lock_waits

    // mysql 5.x
    // innodb_locks记录了所有innodb正在等待的锁,和被等待的锁
    select * from information_schema.innodb_locks;
    // innodb_lock_waits记录了所有innodb锁的持有和等待关系
    select * from information_schema.innodb_lock_waits'
    
    // mysql8: 锁信息
    select * from performance_schema.data_locks;
    // mysql8: 锁等待信息
    select * from performance_schema.data_lock_waits;
    // mysql8: MDL锁信息
    select * from performance_schema.metadata_locks;
    
    • 查看当前事务ID
    SELECT tx.trx_id FROM information_schema.innodb_trx tx WHERE tx.trx_mysql_thread_id = connection_id()
    

    参考

    相关文章

      网友评论

          本文标题:Innodb加锁信息查看

          本文链接:https://www.haomeiwen.com/subject/uhlwmltx.html