• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 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 PRIORITY,或WRITE。有关这些锁类型的信息,请参见include/thr_lock.h源文件。

    • EXTERNAL_LOCK

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

    table_handles表具有以下索引:

    • OBJECT_INSTANCE_BEGIN)上的主键
    • 在指数(OBJECT_TYPEOBJECT_SCHEMAOBJECT_NAME
    • 在(OWNER_THREAD_IDOWNER_EVENT_ID)上的索引

    TRUNCATE TABLE不允许用于该table_handles表。