blog » Database » 远程连接mysql速度慢的解决办法

远程连接mysql速度慢的解决办法

在数据库服务器上修改配置文件my.cnf加入如下:

[mysqld]

skip-name-resolve

附: 说明关于mysql如何使用DNS

当一个新的客户端连接到mysqld时,mysqld会产生一个新的线程来处理这个请求。这个线程首先会检查主机名是否在缓存中存在,如果不存在,它将尝试解析这个主机名。

如果操作系统支持线程安全的gethostbyaddr_r() 和gethostbyname_r() 调用,这个线程会使用它们执行主机名解析。

如果操作系统不支持线程安全的调用,这个线程就会锁定一个互斥体并换为调用gethostbyaddr() 和gethostbyname() 。在这种情况下,第一个线程解锁互斥体之前,其他的线程将不能解析在缓存中不存在的主机名。

你可以通过添加–skip-name-resolve参数启动mysqld来禁用 DNS 主机名查询。但是这将导致你在MySQL的授权表中只能使用IP数字。

如果你使用一个很慢的DNS和许多主机,你可以通过添加–skip-name-resolve禁用域名查询或通过增加 HOST_CACHE_SIZE 定义的值(默认值: 128)并重新编译mysqld来提升性能。

你可以通过–skip-host-cache参数禁用主机名缓存。要清空主机名缓存,可以执行一个 FLUSH HOSTS 语句或执行mysqladmin中的flush-hosts命令实现。

要完全禁用ICP/IP连接,请添加 –skip-networking 启动mysqld。

相关文章:


RSS 2.0 | leave a response | trackback

发表评论