加入收藏 | 设为首页 | 会员中心 | 我要投稿 宁德站长网 (https://www.0593zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

如何定位,排除和避免MySQL性能故障

发布时间:2016-09-03 01:29:44 所属栏目:MySql教程 来源:站长网
导读:首先是如何检查SQL的效率. 1.善用explain: 设计SQL后,应使用explain命令检查SQL,看是否使用到索引,是否存在filesort,重点检查检索的行 数(rows)是否太大。
首先是如何检查SQL的效率.

1.善用explain:

设计SQL后,应使用explain命令检查SQL,看是否使用到索引,是否存在filesort,重点检查检索的行 数(rows)是否太大。

一般来说.

rows<1000,是在可接受的范围内的。

rows在1000~1w之间,在密集访问时可能导致性能问题,但如果不是太频繁的访问(频率低于1分钟一 次),又难再优化的话,可以接受,但需要注意观察

rows大于1万时,应慎重考虑SQL的设计,优化SQL,优化db,一般来说不允许频繁运行(频率低于1小 时一次)。

rows达到10w级别时,坚决不能做为实时运行的SQL。但导数据场合除外,但导数据必须控制好时间, 频度。

explain SQL语句应该是日常开发中的习惯动作,有时explain出来的结果,可能会出于偏离设计的意 料之外,所以

**强烈建议在设计SQL,尤其是稍微复杂的SQL时,一定要在测试环境甚至是实际环境上预先进行 explain**

2.MySQL慢查询日志

一般应打开MySQL的慢查询日志(在my.cnf中加入log_slow_queries和long_query_time两个参数),会记 录所有查询持续时间超过long_query_time的SQL语句,把这些语句log下来之后,再一一分析(explain)优 化。

3.监视当前进程

登陆MySQL,使用show processlist查看正在运行的SQL语句,如果正在运行的语句太多,运行时间太长 ,表示MySQL效率有问题。必要的时候可以将对应的进程kill掉。

4.系统命令

使用top/vmstat等系统命令来检查MySQL进程占用的cpu,内存,以及磁盘IO量。

(编辑:宁德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读