文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


29.12.13.4 table_handles 表

性能模式通过 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 PRIORITYWRITE 之一。有关这些锁类型的详细信息,请参阅 include/thr_lock.h 源文件。

  • EXTERNAL_LOCK

    存储引擎级别使用的表锁。该值是 READ EXTERNALWRITE EXTERNAL 之一。

table_handles 表包含以下索引

  • 主键在 (OBJECT_INSTANCE_BEGIN) 上

  • 索引在 (OBJECT_TYPEOBJECT_SCHEMAOBJECT_NAME) 上

  • 索引在 (OWNER_THREAD_IDOWNER_EVENT_ID) 上

TRUNCATE TABLE 不允许用于 table_handles 表。