golang中连接mysql数据库,需要使用一个第三方类库一般连接mysql首先需要调用sql.Open函数,但是此时并没有真正的去连接mysql,而是只创建了一个Db的对象而已。当执行Query或者是Exec方法时,才会去真正的连接数据库。每次执行sql语句,都会创建一条tcp连接,执行结束就会断掉连接,但是会保留两条连接闲置。测试的流程是这样的,首先在代码中并发100次执行sql,开一个窗口不停的netstat查看3306端口看tcp连接的情况,可以看到最大就10条tcp连接,执行完后会有5条连接保持住,开一个窗口看tcpdump中3306端口的数据请求情况,在闲置连接的时候,会每10秒传递数据给mysql,使得闲置连接保持住。先要拉取一下github包,go get github.com/go-sql-driver/mysqlwhile true;do clear;date;netstat -altupn|grep 3306|grep Client;sleep 1;donetcpdump -i lo port 3306 -vv
暂无评论