在内网连接MySQL速度慢的原因
在内网连接MySQL速度慢的原因
mysql 可以通过host =内网IP地址这种形式来访问,这点是很多人都知道的。我们公司在内网开发好的网站程序提交到服务器之后,总发现点击网页的链接之后,响应时快时慢,host=localhost的!经过重重排查最后确认是数据库响应时间有问题,可是让系统管理员上服务器直接使用mysql内部命令,查询速度却非常正常。后来写了一个简单的php链接mysql的程序测试,才发现问题的关键所在:服务器的dns解析没做好!解决办法是可以手动在host加入内网的IP对应别名或者域名
例如: 192.168.1.11 localhost, www.kakapo.cn
补充另外一个问题,host=ip地址,但是由于公司内部网络调整,连接到本地连接到另外一个MySQL数据库很慢,但是连接上后又操作正常。问题主要是每次mysql_connect的时候会出现。找到的一个解决办法是在my.cnf里修改配置,禁用DNS反向解析:
[mysqld]
--skip-name-resolve
补充--skip-name-resolve这个选项的作用:
mysql客户端每次访问db,mysql就会试图去解析来访问的机器的hostname,并缓存到hostname cache,如果这时解析不了,等一段时间会失败,数据才能被取过来。
例如: 192.168.1.11 localhost, www.kakapo.cn
补充另外一个问题,host=ip地址,但是由于公司内部网络调整,连接到本地连接到另外一个MySQL数据库很慢,但是连接上后又操作正常。问题主要是每次mysql_connect的时候会出现。找到的一个解决办法是在my.cnf里修改配置,禁用DNS反向解析:
[mysqld]
--skip-name-resolve
补充--skip-name-resolve这个选项的作用:
mysql客户端每次访问db,mysql就会试图去解析来访问的机器的hostname,并缓存到hostname cache,如果这时解析不了,等一段时间会失败,数据才能被取过来。
评论