星期一, 一月 15, 2007

DNS 对 MySQL 连接速度的影响

将原来的 LAMP 的 MySQL 和 Apache 分离,数据库迁移到另一台主机后,发现连接和查询速度很慢。仅仅使用数据库连接:
$ mysql -u root -h 192.168.0.2 -p
也是需要很长时间才能通过认证。

可以初步推断可能是 DNS 解析的问题,假设 Apache 所在主机为 192.168.0.1,则编辑 MySQL 主机的 /etc/hosts:
192.168.0.1 192.168.0.1

再次连接,速度就比较快了。页面刷新速度也可以接受了。究其原因,还是 MySQL 在认证时在查询 DNS,将 IP 地址作为一个域名来查询。

MySQL 本身应该有一个变量可以进行控制的。mysqld 的启动参数中有 --skip-name-resolve,"然而,在这种情况下,你只可以使用 MySQL 中的授权表中的 IP" -- 这可能意味着使用主机名授权的表项将不起作用。

http://dev.mysql.com/doc/refman/5.1/zh/optimization.html#dns
http://hackmysql.com/dns

没有评论: