The thread pool feature comprises these components:
A plugin library file implements a plugin for the thread pool code as well as several associated monitoring tables that provide information about thread pool operation:
As of MySQL 8.0.14, the monitoring tables are Performance Schema tables; see Section 26.12.16, “Performance Schema Thread Pool Tables”.
Prior to MySQL 8.0.14, the monitoring tables are
INFORMATION_SCHEMAtables; see Section 25.48, “INFORMATION_SCHEMA Thread Pool Tables”.
INFORMATION_SCHEMAtables now are deprecated and will be removed in a future MySQL version. Applications should transition away from the old tables to the new tables. For example, if an application uses this query:
SELECT * FROM INFORMATION_SCHEMA.TP_THREAD_STATE;
The application should use this query instead:
SELECT * FROM performance_schema.tp_thread_state;
If you do not load all the monitoring tables, some or all MySQL Enterprise Monitor thread pool graphs will be empty.
For a detailed description of how the thread pool works, see Section 22.214.171.124, “Thread Pool Operation”.
Several system variables are related to the thread pool. The
thread_handlingsystem variable has a value of
loaded-dynamicallywhen the server successfully loads the thread pool plugin.
The other related variables are implemented by the thread pool plugin; they are not available unless it is enabled:
thread_pool_algorithm: The concurrency algorithm to use for scheduling.
thread_pool_high_priority_connection: How to schedule statement execution for a session.
thread_pool_prio_kickup_timer: How long before the thread pool moves a statement awaiting execution from the low-priority queue to the high-priority queue.
thread_pool_max_active_query_threadsHow many active threads per group to permit.
thread_pool_max_unused_threads: How many sleeping threads to permit.
thread_pool_size: The number of thread groups in the thread pool. This is the most important parameter controlling thread pool performance.
thread_pool_stall_limit: The time before an executing statement is considered to be stalled.
If any variable implemented by the plugin is set to an illegal value at startup, plugin initialization fails and the plugin does not load.
For information about setting thread pool parameters, see Section 126.96.36.199, “Thread Pool Tuning”.
The Performance Schema has instruments that expose information about the thread pool and may be used to investigate operational performance. To identify them, use this query:
SELECT * FROM performance_schema.setup_instruments WHERE NAME LIKE '%thread_pool%';
For more information, see Chapter 26, MySQL Performance Schema.