MySQL 8.3 Release Notes
Note
MySQL 企业线程池是 MySQL 企业版的一部分,一个商业产品。要了解更多关于商业产品的信息,请访问:https://www.mysql.com/products/。
MySQL 企业版包括 MySQL 企业线程池,使用服务器插件实现。MySQL 服务器的默认线程处理模型使用一个线程来执行每个客户端连接。随着更多客户端连接到服务器并执行语句,总体性能下降。线程池插件提供了一个替代的线程处理模型,旨在减少开销并提高性能。该插件实现了一个线程池,以高效地管理大量客户端连接的语句执行线程。
线程池解决了使用一个线程 per 连接模型的一些问题:
-
太多的线程栈使 CPU 缓存几乎无用在高度并行执行工作负载中。线程池促进线程栈重用,以最小化 CPU 缓存 footprint。
-
随着太多线程并行执行,上下文切换开销很高。这也对操作系统调度器提出了挑战。线程池控制活动线程的数量,以保持 MySQL 服务器中的并行度在可处理的水平,并适合服务器主机上的执行。
-
太多事务并行执行增加了资源争用。在
InnoDB
中,这增加了持有中央互斥锁的时间。线程池控制事务何时开始,以确保不太多事务并行执行。