MySQL 线程池

阅读更多

MySQL 采用多线程来处理并发的连接,通过 mysqlreport 中的 Threads 部分,我们可以看到线程创建的统计结果:



 

每秒创建43.6个线程,虽然创建线程的开销不值一提,但是当系统比较繁忙的时候,我们当然不希望再给它添麻烦。

一个比较好的办法是在应用中尽量使用持久连接,这将在一定程度上减少线程的重复创建。另一方面,从上面的 Cache = 0 可以看出,这些线程并没有被复用,我们可以在 my.cnf 中设置一下选项:

 

thread_cache_size = 100

 

这使得 MySQL 可以缓存 100 个线程。随后我们获得新的 mysqlreport 报告,Threads 部分如下所示:

 
MySQL 线程池_第1张图片
 

可以看到,MySQL 在长达5天多的时间里,平均每秒处理 45.1 个连接,但是一共只创建了 186 个线程,线程池的命中率为 100%。

 

  • MySQL 线程池_第2张图片
  • 大小: 14.4 KB
  • MySQL 线程池_第3张图片
  • 大小: 37.3 KB
  • 查看图片附件

你可能感兴趣的:(MySQL 线程池)