mysql cpu占用率高,如何定位

866 阅读1分钟

登录mysql服务器,根据top找到线程号

根据线程号查询这个线程是否开启了监控和历史事件日志

关于threads

select * from performance_schema.threads where thread_os_id=xxx; 

如下输出

          THREAD_ID: 47
               NAME: thread/sql/one_connection
               TYPE: FOREGROUND
     PROCESSLIST_ID: 8
   PROCESSLIST_USER: root
   PROCESSLIST_HOST: localhost
     PROCESSLIST_DB: shop_mall
PROCESSLIST_COMMAND: Query
   PROCESSLIST_TIME: 0
  PROCESSLIST_STATE: Sending data
   PROCESSLIST_INFO: select * from performance_schema.threads
   PARENT_THREAD_ID: 1
               ROLE: NULL
       INSTRUMENTED: YES
            HISTORY: YES
    CONNECTION_TYPE: Socket
       THREAD_OS_ID: 16086219
     RESOURCE_GROUP: NULL

还能根据上面查到的THREAD_ID(不是THREAD_OS_ID),查询线程最新监控语句事件

关于events_statements_current

select * from performance_schema.events_statements_current where THREAD_ID in (xxx);