• Mysql之锁(二)


    1、查看锁

    SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX; -- 记录当前运行的事务
    
    SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; -- 记录当前出现的锁
    
    SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS; -- 记录锁等待的对应关系
    

    2、INNODB_TRX表字段:

    • trx_id:InnoDB存储引擎内部唯一的事物ID
    • trx_status:当前事务的状态, RUNNING, LOCK WAIT, ROLLING BACK or COMMITTING.
    • trx_status:事务的开始时间
    • trx_requested_lock_id:事务等待的锁的ID(如果事务状态不是LOCK WAIT,这个字段是NULL),详细的锁的信息可以连查INNODB_LOCKS表
    • trx_wait_started:事务等待的开始时间
    • trx_weight:事务的权重,反应一个事务修改和锁定的行数,当发现死锁需要回滚时,权重越小的值被回滚
    • trx_mysql_thread_id:MySQL中的进程ID,与show processlist中的ID值相对应
    • trx_query:事务运行的SQL语句
    • trx_operation_state:事务当操作的类型 如updating or deleting,starting index read等
    • trx_tables_in_use:查询用到的表的数量
    • trx_tables_locked:查询加行锁的表的数量
    • trx_rows_locked:事务锁住的行数(不是准确数字)
    • trx_rows_modified:事务插入或者修改的行数

    3、INNODB_LOCKS表:

    • lock_id:锁ID
    • lock_trx_id:拥有锁的事务 ID。可以和 INNODB_TRX 表 JOIN 得到事务的详细信息。
    • lock_mode:锁的模式。
    • lock_type:锁的类型。RECORD 代表行级锁,TABLE 代表表级锁。
    • lock_table:被锁定的或者包含锁定记录的表的名称。
    • lock_index:当LOCK_TYPE=’RECORD’ 时,表示索引的名称;否则为 NULL。
    • lock_space:当LOCK_TYPE=’RECORD’ 时,表示锁定行的表空间 ID;否则为 NULL。
    • lock_page:当 LOCK_TYPE=’RECORD’ 时,表示锁定行的页号;否则为 NULL。
    • lock_rec:当 LOCK_TYPE=’RECORD’ 时,表示一堆页面中锁定行的数量,亦即被锁定的记录号;否则为 NULL。
    • lock_data:当 LOCK_TYPE=’RECORD’ 时,表示锁定行的主键;否则为NULL。

    4、INNODB_LOCK_WAITS表:

    • requesting_trx_id:申请锁资源的事务ID
    • requesting_lock_id:申请的锁的ID
    • blocking_trx_id:租塞的事务ID
    • blocking_lock_id:租塞的锁的ID
  • 相关阅读:
    linux内核中GNU C和标准C的区别
    linux内核中GNU C和标准C的区别
    Getting start with dbus in systemd (02)
    Getting start with dbus in systemd (01)
    Getting start with dbus in systemd (03)
    物理内存相关的三个数据结构
    数据类型对应字节数(32位,64位 int 占字节数)
    Linux kernel 内存
    共模电感的原理以及使用情况
    [原创]DC-DC输出端加电压会烧毁
  • 原文地址:https://www.cnblogs.com/tongxuping/p/12334695.html
Copyright © 2020-2023  润新知