- A.15.1。什么是线程池,它解决了什么问题?
- A.15.2。线程池如何限制和管理并发会话和交易以获取最佳性能和吞吐量?
- A.15.3。线程池如何与客户端连接池不同?
- A.15.4。我应该什么时候使用线程池?
- A.15.5。是否有推荐的线程池配置?
A.15.1。 |
什么是线程池,它解决了什么问题? |
MySQL线程池是一个MySQL Server插件,它扩展了MySQL Server的默认连接处理功能,以限制同时执行的语句/查询和事务的数量,以确保每个都具有足够的CPU和内存资源来满足其任务。对于MySQL 8.0,Thread Pool插件包含在MySQL Enterprise Edition,商业产品中。 MySQL Server中的默认线程处理模型使用每个客户端连接的一个线程执行语句。随着更多客户端连接到服务器并执行语句,整体性能降低。线程池插件提供替代的螺纹处理模型,旨在减少开销并提高性能。线程池插件通过有效地管理大量客户端连接的语句执行线程来增加服务器性能,尤其是在现代多CPU /核心系统上。 有关更多信息,请参阅第5.6.3节“MySQL Enterprise Thread Pool”。 |
|
A.15.2。 |
线程池如何限制和管理并发会话和交易以获取最佳性能和吞吐量? |
线程池使用一个“划分和征服“限制和平衡并发的方法。与MySQL Server的默认连接处理不同,线程池与连接和线程分隔连接,因此连接与执行从这些连接接收的语句的线程之间没有固定关系。然后,线程池在可配置的线程组中管理客户端连接,在那里它们是根据提交的工作的性质优先顺序和排队,他们是他们提交的工作。 有关更多信息,请参阅第5.6.3.3节“线程池操作”。 |
|
A.15.3。 |
线程池如何与客户端连接池不同? |
MySQL连接池在客户端上运行,以确保MySQL客户端不断地连接到MySQL Server和断开连接。它旨在缓存MySQL客户端中的空闲连接,以供其他用户使用它们。这最大限度地减少了建立和撕毁连接的开销和费用,因为查询已提交到MySQL Server时。MySQL连接池对后端MySQL Server的查询处理功能或负载没有可见性。相比之下,线程池在MySQL服务器端运行,旨在管理入站并发连接和查询的执行,因为从访问后端MySQL数据库的客户端连接接收到它们。由于职责分离,MySQL连接池和线程池是正交的,可以彼此独立使用。 通过MySQL连接器汇集MySQL连接池第29章,连接器和API.。 |
|
A.15.4。 |
我应该什么时候使用线程池? |
考虑最佳线程池用例的一些拇指规则: mysql. 如果您使用的是 最后,如果您的工作负载主要包括短查询,则线程池应该是有益的。 要了解更多信息,请参阅第5.6.3.4节“线程池调整”。 |
|
A.15.5。 |
是否有推荐的线程池配置? |
线程池具有许多影响其性能的用户案例驱动配置参数。要了解这些和调整的提示,请参阅第5.6.3.4节“线程池调整”。 |