MySQL连接池的思考
1 无连接池,服务只有一个数据库连接
此时服务多线程执行SQL语句的时候会争用唯一一个数据库连接,性能差,需要排队
2 无连接池,每个线程创建一个数据库连接
此时服务多线程执行SQL语句的时候都针对每次SQL执行请求创建一个数据库连接,使用完了需要销毁。由于创建和销毁数据库连接开销大,且可能会耗尽数据库资源
3 引入服务数据库连接池,
线程都从数据库连接池中去获取数据库连接,池化思想,避免的资源的重复创建的开销,分摊成本,性能高,但是如果每个服务都有这样的连接池,MySQL服务器该怎么处理这么多连接
4 MySQL服务器引入数据库连接池
因此,MySQL服务器也需要维护一个自身的数据库连接池,来应对多个服务来连接数据库
在数据库服务器的连接池的某个网络连接接受到了请求,会由一个线程来监听请求和读取请求数据,此后交给SQL接口去执行。