一,为何需要MySQL线程池

使用线程池的理由

  • 减少线程重复创建与销毁的部分开销,提高性能

    线程池技术通过预先创建一定数量的线程,在监听到有新的请求后,线程池直接从现有的线程中分配一个线程来提供服务,服务结束后这个线程也不会直接销毁,而是继续处理其他请求,这样就避免了线程和内存对象频繁创建和销毁,减少上下文切换,提高资源的利用效率,从而在一定程度上提高了系统的性能和稳定性。

  • 对系统起到保护作用

    线程池技术限制了并发线程数,相当于限制了 MySQL 的 runing 线程数,无论目前系统有多少连接或者请求,超过最大设置的线程数的都需要排队,让系统保持高性能水平,从而防止DB出现雪崩,对底层DB起到保护作用。可能有人会问,使用连接池能否也达到类似的效果?也许有的DBA会把线程池和连接池混淆,但其实两者是有很大区别的:连接池一般在客户端设置,而线程池是在DB服务器上配置;另外连接池可以起到避免了连接频繁创建和销毁,但是无法控制MySQL活动线程数的目标,在高并发场景下,无法起到保护DB的作用。比较好的方式是将连接池和线程池结合起来使用。

https://blog.csdn.net/weixin_39847728/article/details/113371840