常用命令列举

  1. 主要是 INFORMATION_SCHEMA 库里的表

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    -- 包含事务正在等待的锁的信息
    SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;

    -- 包含当前运行的所有事务的列表
    SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;

    -- 包含事务持有的当前锁的相关信息以及每个事务等待的锁的信息
    SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

    -- 阻塞的事务列表
    SELECT INNODB_LOCKS.* FROM INFORMATION_SCHEMA.INNODB_LOCKS JOIN INFORMATION_SCHEMA.INNODB_LOCK_WAITS ON (
    INFORMATION_SCHEMA.INNODB_LOCKS.LOCK_TRX_ID = INFORMATION_SCHEMA.INNODB_LOCK_WAITS.BLOCKING_TRX_ID)

    -- 特定表上的锁的列表
    SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS WHERE LOCK_TABLE = 'db_name.tables_name';

    -- 等待锁的事务列表
    SELECT TRX_ID, TRX_REQUESTED_LOCK_ID, TRX_MYSQL_THREAD_ID, TRX_QUERY FROM INFORMATION_SCHEMA.INNODB_TRX WHERE TRX_STATE = 'LOCK WAIT';

    -- INNODB 监控器
    show engine innodb status;


    show full processlist ;
    kill 600678;

    show status like 'innodb_row_lock%'; -- 行锁
    show status like '%lock%';


    show OPEN TABLES where In_use > 0;
  2. PERFORMANCE_SCHEMA 中的表(*_INSTANCES)

    所有的*_INSTANCES表都包含 NAME和OBJECT_INSTANCE_BEGIN字段,这两个字段分别代表实例的名称和对象检测时的内存地址

  • COND_INSTANCES: 表包含等待条件列表,这些条件是在服务器启动后生成的。条件是指使一个线程等待其他线程的方式方法。

  • FILE_INSTANCES: 表包含性能架构可见的文件列表。当服务器首次打开文件的时候就将文件名插入该表,并且在文件从磁盘删除之前都会保存在该表之中。目前(…)打开文件会有一个正的 OPEN_COUNT计数。Number字段保存当前使用该文件的文件句柄数量。

  • MUTEX_INSTANCES: 表包含性能架构可见的互斥列表。互斥记录中 LOCKED_BY_THREAD_IS 的值为 NOT NULL 部分是当前锁定的互斥。

  • RWLOCK_INSTANCE: 表包含所有读/写锁实例的列表。WRITE_LOCKED_BY_THREAD_IS 字段代表持有锁的线程ID。READ_LOCKED_BYCOUNT字段代表当前在实例上获取了多少读锁。

  • EVENTS_WAITS_*: 系列表包含每个线程等待的事件的信息。

  • *SUMMARY*: 表包含被终止事件的聚合信息。

  1. 其他命令
    1
    2
    3
    4
    -- 查看变量
    show variables like '%xxx%';
    -- 查系统变量
    select @@xxx;