MySQL线程
MySQL服务端是多线程软件,它的每个组件都使用线程。
可以是后台线程,由主线程或存储引擎创建的;
也可以是为用户连接创建的前台线程。
每个线程至少有两个唯一标识符:一个是操作系统线程ID,另一个是MySQL内部线程ID。
操作系统线程ID可以通过相关工具查看,例如在Linux系统中可使用ps -efL命令查看。
而MySQL内部线程ID在大多数performance_schema 表中以 THREAD_ID 命名。
此外,每个前台线程都有一个指定的 PROCESSLIST_ID :连接标识符。在 SHOW PROCESSLIST 命令输出中,或在 MySQL 命令行客户端连接成功的提示信息中可以看到(Your MySQL connection id is 25)。
提示
performance_schema中的 threads 表包含了服务器中存在的所有线程:
SELECT
name,
thread_os_id,
thread_id,
processlist_id
FROM threads
ORDER BY processlist_id DESC ;
+--------------------------------+------------+---------+--------------+
|name |thread_os_id|thread_id|processlist_id|
+--------------------------------+------------+---------+--------------+
|thread/sql/one_connection |7248 |51 |25 |
|thread/sql/one_connection |14216 |50 |24 |
|thread/sql/compress_gtid_table |6116 |26 |1 |
|thread/sql/main |4800 |1 |NULL |
|thread/sql/thread_timer_notifier|5376 |2 |NULL |
|thread/innodb/io_ibuf_thread |5428 |3 |NULL |
|thread/innodb/io_read_thread |5436 |4 |NULL |
|thread/innodb/io_log_thread |5432 |5 |NULL |
|thread/innodb/io_read_thread |5448 |6 |NULL |
|thread/innodb/io_read_thread |5444 |7 |NULL |
+--------------------------------+------------+---------+--------------+
最后更新于