思考:一条mysql的执行语句,经过了哪些流程
1、连接层
mysql服务端,暴露了一个3306端口,客户端用什么协议和他连接?
mysql支持多种协议,一般我们都是使用TCP (mysql-connector-java-x.x.xx.jar)
mysql-connector-java-x.x.xx.jar: 看了下代码,是解析url的 ip port 协议,建立了socket连接
连接方式:可以支持同步和异步
同步通信一般依赖于被调用方,会被阻塞,等待被调用方返回结果
异步和同步相反,异步可以减少阻塞的时间,但是并不能减少sql执行的时间。存在一个问题,并发情 况下,异步会创建大量的连接。可以使用线程池。但是对于异步结果的返回还是不可控。一般我们使用同步的方式
长连接还是短连接:都支持,但是在连接池中一般使用长连接。
show global variable