MySQL的 performance_schema.threads 和操作系统的线程 ID

在和同事讨论 systemtap 的时候, 提到 performance_schema 里的 threads 表,只要 client 连接上 server之后,在该 session 里面执行的所有 SQL 都有共同的线程 ID:

mysql> select processlist_id,thread_os_id from performance_schema.threads where processlist_info like 'select process%';
+----------------+--------------+
| processlist_id | thread_os_id |
+----------------+--------------+
|      197357865 |         4923 |
+----------------+--------------+
1 row in set (0.00 sec)
mysql> 
然后在数据库服务器端,执行 ps -eLf 即可看到 ID 为  4923  的 mysqld 线程

当前运行的事物:

SELECT it.trx_id,
          psh.sql_text,
          pt.thread_id,
          ptc.event_id AS trx_event_id,
          psh.event_id,
          psh.rows_sent
 FROM information_schema.innodb_trx it
 JOIN performance_schema.threads pt
     ON it.trx_mysql_thread_id = pt.processlist_id
 JOIN performance_schema.events_statements_history psh
     ON pt.thread_id = psh.thread_id
 JOIN performance_schema.events_transactions_current ptc
     ON psh.THREAD_ID = ptc.THREAD_ID
         AND (psh.NESTING_EVENT_ID = ptc.EVENT_ID
         OR psh.END_EVENT_ID >= ptc.EVENT_ID); 

检查锁:

SELECT t.trx_mysql_thread_id
FROM performance_schema.data_locks d, information_schema.innodb_trx t
WHERE d.lock_type in ('RECORD', 'TABLE')
    AND t.trx_id = d.ENGINE_TRANSACTION_ID;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值