相关疑难解决方法(0)

MySQL - 持久连接与连接池

为了避免每次查询需要针对MySQL触发时建立新连接的开销,有两种选择:

  1. 持久连接,其中请求新连接,检查是否已经打开"相同"连接,如果是,则使用它.
  2. 连接池,客户端维护连接池,以便需要使用连接的每个线程将从池中检出一个并在完成后将其返回池中.

因此,如果我希望每秒处理数千个请求的多线程服务器应用程序,并且每个线程需要针对数据库触发查询,那么什么是更好的选择?

根据我的理解,使用持久连接,我的应用程序中的所有线程都将尝试使用与数据库相同的持久连接,因为它们都使用相同的连接.因此,它是跨多个应用程序线程共享的一个连接 - 因此请求将很快在数据库端阻塞.

如果我使用连接池机制,我将让所有应用程序线程共享一个连接池.因此阻塞请求的可能性较小.但是,对于连接池,应用程序线程是否应该等待从池中获取连接,或者它是否应该以循环方式在池中的连接上发送请求,并在数据库上进行排队(如果有)?

mysql multithreading database-connection

44
推荐指数
2
解决办法
4万
查看次数