使用Java程序连接MySql数据库时,发现启动相关慢。
对代码进行测试,发现第一次连接时较慢。
以前用C++连接Oracle时,也遇到类似的问题。
当时找到原因是由于Oracle试图解析主机名,由于DNS服务器不可达,要等到连接超时后,才放弃解析。详细信息请参考
http://blog.csdn.net/lijing_lj928/article/details/46953085
猜想MySql也是如此。
在mysql的配置文件/etc/my.cnf中添加如下项
[mysqld]
skip-name-resolve
重启MySQL
service mysqld restart
连接正常——原来需要40秒,现在只需要2毫秒即操作完成。
要网上查了相关知识,解释如下:
当新的客户连接mysqld时,mysqld创建一个新的线程来处理请求。该线程先检查是否主机名在主机名缓存中。如果不在,线程试图解析主机名。
欢迎加入群430080334,进行技术交流。