老王:最近我的MySQL数据库很慢.... 很忧伤,这可肿么办?
帅萌:老王,老王你莫心慌,听我跟你唠~
MySQL性能有问题,先应该关注的是慢查询日志(slow log)。
MySQL性能慢,多半是SQL引起的(慢查询日志会把执行慢的SQL,一五一十的记录下来,就像你的身体一样诚实..)需要根据慢查询日志的内容来优化SQL。
其次,除了MySQL慢查询日志,还需要更多的关注liunx系统的指标和参数。
top 命令帮你观察大橘(局)。
观察 load average 1分钟 、5分钟、 15分钟的平均负载值。
然后是us% 用户使用的CPU占比,如果us%太高,极有可能索引使用不当。
sy%系统内核使用的CPU占比,如果sy%太高,要注意MySQL的连接数和锁等信息。
wa% io使用CPU的占比,如果wa%太高,要关注MySQL是否使用了硬盘临时表,或者大量刷盘等操作,也有可能是硬盘太慢,或硬盘故障,可以使用iostat等工具来观察。
还需要关注各个逻辑CPU之前的负载是否均衡(可能是中断不均衡导致性能问题),可以使用mpstat命令来进行详细观察。