有个资料看得我云里雾里的。现在用自己的言语来总结一下,写文字,能够加深自己的理解。也会在写的过程中帮助自己发现理解方面瑕疵,继续查资料求证。
短链接的缺点:创建一个连接,程序执行完毕后,就会自动断掉与mysqlserver的链接。于是多少次php执行,就会多少次这样的创建和释放过程。频繁地创建和释放连接,比较耗费cpu资源。
长连接就可以避免每次请求都创建连接的开销,节省了时间和IO消耗。
长连接是提高了性能。不过还有一些细节的问题需要解决,即mysql发现一个链接长时间没有执行查询请求,就会自动断掉这个连接。
具体多长时间后断掉,有个timeout设置时间。通过sql:"show global variables like '%timeout';" 查看。
my.conf中的
wait_timeout=2880000
interactive_timeout = 2880000
当链接已经失效了,仍然去执行查询操作,一个明显的表现形式就是提示:MySQL server has gone away
启发:MySQL server has gone away这个信息是mysql服务器提示出来的呢?还是php的mysql扩展提示出来的呢?
据判断,肯定是应用程序服务器报出来的(php)。想一想,如果mysql都已经接到请求了,那么还出现什么链接不上。明明都已经链接上了。
既然mysql服务器都能够接受请求,那么还怎么处理不过来呢。
我们去百度搜索:MySQL server has gone away。从来没有看到java链接my