Documentation Home

25.12.12.2 table_handles 表

Performance Schema 通过table_handles表公开表锁信息,以显示当前对每个打开的表句柄有效的表锁。table_handles报告表锁检测记录的内容。此信息显示服务器已打开的表句柄、它们如何锁定以及由哪些会话锁定。

table_handles表是只读的,无法更新。默认情况下它是自动调整大小的;要配置表大小,请 performance_schema_max_table_handles 在服务器启动时设置系统变量。

表锁检测使用 wait/lock/table/sql/handler默认启用的仪器。

要在服务器启动时控制表锁检测状态,请在my.cnf文件中使用如下行:

  • 使能够:

    [mysqld]
    performance-schema-instrument='wait/lock/table/sql/handler=ON'
  • 禁用:

    [mysqld]
    performance-schema-instrument='wait/lock/table/sql/handler=OFF'

要在运行时控制表锁检测状态,请更新setup_instruments表:

  • 使能够:

    UPDATE performance_schema.setup_instruments
    SET ENABLED = 'YES', TIMED = 'YES'
    WHERE NAME = 'wait/lock/table/sql/handler';
  • 禁用:

    UPDATE performance_schema.setup_instruments
    SET ENABLED = 'NO', TIMED = 'NO'
    WHERE NAME = 'wait/lock/table/sql/handler';

table_handles表有以下列:

  • OBJECT_TYPE

    由表句柄打开的表。

  • OBJECT_SCHEMA

    包含对象的架构。

  • OBJECT_NAME

    检测对象的名称。

  • OBJECT_INSTANCE_BEGIN

    表句柄在内存中的地址。

  • OWNER_THREAD_ID

    拥有表句柄的线程。

  • OWNER_EVENT_ID

    导致打开表句柄的事件。

  • INTERNAL_LOCK

    在 SQL 级别使用的表锁。该值为 READREAD WITH SHARED LOCKSREAD HIGH PRIORITYREAD NO INSERTWRITE ALLOW WRITEWRITE CONCURRENT INSERTWRITE LOW PRIORITY或之一WRITE。有关这些锁类型的信息,请参阅 include/thr_lock.h源文件。

  • EXTERNAL_LOCK

    在存储引擎级别使用的表锁。值为READ EXTERNAL或 之一WRITE EXTERNAL

TRUNCATE TABLE不允许用于table_handles表。