### 5.6.3 MySQL 企业线程池

[5.6.3.1 线程池元素](thread-pool-elements.html)
[5.6.3.2 线程池安装](thread-pool-installation.html)
[5.6.3.3 线程池操作](thread-pool-operation.html)
[5.6.3.4 线程池调优](thread-pool-tuning.html)

[](<>)[](<>)

笔记

MySQL Enterprise Thread Pool 是商业产品 MySQL Enterprise Edition 中包含的扩展。要了解有关商业产品的更多信息，<https://www.mysql.com/products/>.

MySQL 企业版包括 MySQL 企业线程池，使用服务器插件实现。MySQL 服务器中的默认线程处理模型使用每个客户端连接一个线程来执行语句。随着越来越多的客户端连接到服务器并执行语句，整体性能会下降。线程池插件提供了另一种线程处理模型，旨在减少开销并提高性能。该插件实现了一个线程池，通过有效地管理大量客户端连接的语句执行线程来提高服务器性能。

线程池解决了每个连接使用一个线程的模型的几个问题：

-   过多的线程堆栈使 CPU 缓存在高度并行的执行工作负载中几乎毫无用处。线程池促进线程堆栈重用以最小化 CPU 缓存占用。

-   由于并行执行的线程太多，上下文切换开销很高。这也对操作系统调度程序提出了挑战。线程池控制活动线程的数量，以将 MySQL 服务器内的并行度保持在它可以处理的水平，并且适用于 MySQL 正在执行的服务器主机。

-   并行执行的事务过多会增加资源争用。在[`InnoDB`](innodb-storage-engine.html)，这增加了持有中央互斥锁的时间。线程池控制事务何时开始，以确保不会有太多并行执行。

#### 其他资源

[第 A.15 节，“MySQL 8.0 常见问题解答：MySQL 企业线程池”](faqs-thread-pool.html)
