关闭

Mysql 性能调优

310人阅读 评论(0) 收藏 举报
分类:

1、skip-name-resolve

查看mysql的错误日志里有如下类似信息:

IP address '222.186.15.114' could not be resolved: Name or service not known

原因是mysql对连接的客户端默认进行DNS反向解析(ip反解析为域名),无论内网还是外网访问都会有此操作,这是个费时操作,有两种解决办法,一个是在/etc/hosts文件中加入对应ip,随便取个名字,另一个就是在my.cnf中加入配置参数skip-name-resolve,这样可以关闭DNS反向解析功能,提高效率

另外需要注意的是,添加该参数后,mysql的授权表中就不能使用主机名了,只能使用ip,当授权表中存在设置了hostname的账号,数据库错误日志会有如下提示:

....’user’entry ‘root@xxxx’ ignored in --skip-name-resolve mode

删除对应的账号或者将host修改为ip就可以了

2、max_connections

在平时测试过程中,JAVA客户端启动线程池访问数据库,不断重启会造成数据库访问线程没有正常关闭,经常出现too many connections的错误,通过show processlist可以看到很多sleep线程,单纯通过将max_connections配大,并不一定可以解决问题,因为该参数还与open_files_limit,table_open_cache有关系,open_files_limit = 10+max_connections+table_open_cache*2,如果我们设置的max_connections不合理,在数据库错误日志中会出现相应的警告,并且设置不会生效,系统会自动计算出一个合理的值。另外解决sleep线程过多的办法是可以设置wait_timeout参数,默认是8个小时,mysql会自动释放这些sleep线程。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:162864次
    • 积分:1490
    • 等级:
    • 排名:千里之外
    • 原创:29篇
    • 转载:11篇
    • 译文:0篇
    • 评论:21条
    文章分类
    最新评论