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