CPU
磁盘IO
网络IO
这三个是影响你数据库连接池连接数大小的比较重要的因素
连接数比cpu核数大的话,cpu需要切换上下文,从而导致效率的减低。
磁盘io如果堵塞,自然会降低效率,同理网络io也是,so,需要从实际的业务场景出发,找到合理的硬件配置。
根据pgsql的基准测试, 连接数在cpu核心数*2的范围内,tps 是相对比较高的。
盲目的增加连接数可能会导致指数级别的下降。
所以,千万别把自己家菜鸡级别的2核cpu的mysql 数据库连接数搞成200。
把线程池和连接池混淆,其实两者是有很大区别的,连接池一般在客户端设置,而线程池是在DB服务器上配置;另外连接池可以取到避免了连接频繁创建和销毁,但是无法取到控制MySQL活动线程数的目标,在高并发场景下,无法取到保护DB的作用。比较好的方式是将连接池和线程池结合起来使用。