Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  MySQL Enterprise Thread Pool

7.6.3 MySQL 企业线程池

Note

MySQL 企业线程池是 MySQL 企业版的一部分,一个商业产品。要了解更多关于商业产品的信息,请访问:https://www.mysql.com/products/

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

线程池解决了使用一个线程 per 连接模型的一些问题:

  • 太多的线程栈使 CPU 缓存几乎无用在高度并行执行工作负载中。线程池促进线程栈重用,以最小化 CPU 缓存 footprint。

  • 随着太多线程并行执行,上下文切换开销很高。这也对操作系统调度器提出了挑战。线程池控制活动线程的数量,以保持 MySQL 服务器中的并行度在可处理的水平,并适合服务器主机上的执行。

  • 太多事务并行执行增加了资源争用。在 InnoDB 中,这增加了持有中央互斥锁的时间。线程池控制事务何时开始,以确保不太多事务并行执行。

附加资源

附录 A.15,“MySQL 8.3 常见问题:MySQL 企业线程池”