查看正在执行的事务

select * from sys.processlist
show processlist
select * from information_schema.processlist
select * from sys.session
select * from information_schema.innodb_trx;
select * from performance_schema.events_statements_current

查看未提交的事务

select * from information_schema.innodb_trx

两者结合一下得到

select trx_id,
    INNODB_TRX.trx_state,
    INNODB_TRX.trx_started,
    se.conn_id as processlist_id,
    trx_lock_memory_bytes,
    se.user,
    se.command,
    se.state,
    se.current_statement,
    se.last_statement
from information_schema.INNODB_TRX,
    sys.session as se
where trx_mysql_thread_id = conn_id;
select now(),
    (
        UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(a.trx_started)
    ) diff_sec,
    b.id,
    b.user,
    b.host,
    b.db,
    d.SQL_TEXT
from information_schema.innodb_trx a
    inner join information_schema.PROCESSLIST b on a.TRX_MYSQL_THREAD_ID = b.id
    and b.command = 'Sleep'
    inner join performance_schema.threads c ON b.id = c.PROCESSLIST_ID
    inner join performance_schema.events_statements_current d ON d.THREAD_ID = c.THREAD_ID;
select * from sys.innodb_lock_waits\G	

MySQL如何查看大事务

相关文章:

  • 2021-04-22
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-21
  • 2021-05-21
猜你喜欢
  • 2022-03-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-08
相关资源
相似解决方案