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

首先是如何检查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量。

时间: 2025-01-21 04:43:24

如何定位,排除和避免MySQL性能故障的相关文章

关键的十个MySQL性能优化技巧

与所有的关系型数据库一样,MySQL仿佛是一头让人难以琢磨的怪兽.它会随时停摆,让应用限于停滞,或者让你的业务处于危险之中. 事实上,许多最常见的错误都隐藏在MySQL性能问题的背后.为了确保你的MySQL服务器能够一直处于全速运行的状态,提供持续稳定的性能,杜绝这些错误是非常重要的.然而,这些错误又往往隐藏在工作负载和配置问题之中. 幸运的是,许多MySQL性能问题都有着相似的解决方案,这使得排除故障与调整MySQL成为了一项易于管理的任务.以下就是10个让MySQL发挥最佳性能的技巧. 1.

semi-sync插件崩溃导致MySQL重启故障详析

本文讲的是semi-sync插件崩溃导致MySQL重启故障详析 导读 semi-sync插件崩溃导致MySQL重启的故障分析全过程~ 作者:刘安 现为爱可生高级测试工程师,拥有丰富的自动测试开发经验:曾先后在文思海辉.Splunk担任测试工程师. 一.起因: 在公司测试MySQL高可用组件时发现一个异常.如下: 停止从库,高可用组件将从库自动启动后,主库发生了重启.然而,正常情况下,主库不应发生重启. 二.环境: 1.OS: CentOS release 6.7 (Final): 2.MySQL

MySQL性能优化总结

一.MySQL的主要适用场景 1.Web网站系统 2.日志记录系统 3.数据仓库系统 4.嵌入式系统 二.MySQL架构图:   三.MySQL存储引擎概述 1)MyISAM存储引擎 MyISAM存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件.首先肯定会有任何存储引擎都不可缺少的存放表结构定义信息的.frm文件,另外还有.MYD和.MYI文件,分别存放了表的数据(.MYD)和索引数据(.MYI).每个表都有且仅有这样三个文件做为MyISAM存储类型的表的存储,也就是说不管这个

MySQL性能优化总结(转)

一.MySQL的主要适用场景 1.Web网站系统 2.日志记录系统 3.数据仓库系统 4.嵌入式系统 二.MySQL架构图:   三.MySQL存储引擎概述 1)MyISAM存储引擎 MyISAM存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件.首先肯定会有任何存储引擎都不可缺少的存放表结构定义信息的.frm文件,另外还有.MYD和.MYI文件,分别存放了表的数据(.MYD)和索引数据(.MYI).每个表都有且仅有这样三个文件做为MyISAM存储类型的表的存储,也就是说不管这个

MySQL 性能监控4大指标——第二部分

[编者按]本文作者为 John Matson,主要介绍 mysql 性能监控应该关注的4大指标. 第一部分介绍了前两个指标:查询吞吐量与查询执行性能.本文将继续介绍另两个指标:MySQL 连接与缓冲池.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 连接 检查并设置连接限制 监控客户端连接情况相当重要,因为一旦可用连接耗尽,新的客户端连接就会遭到拒绝.MySQL 默认的连接数限制为 151,可通过下面的查询加以验证: SHOW VARIABLES LIKE 'max_connectio

SQL Server 2008性能故障排查(二)——CPU

原文:SQL Server 2008性能故障排查(二)--CPU 承接上一篇:SQL Server 2008性能故障排查(一)--概论 说明一下,CSDN的博客编辑非常不人性化,我在word里面都排好了版,贴上来就乱得不成样了.建议CSDN改进这部分.也请大家关注内容不要关注排版.同时在翻译的过程中本人也整理了一次思路,所以还似乎非常愿意翻译,虽然有点自娱自乐,但是分享给大家也是件好事 CPU 瓶颈:CPU瓶颈可能因为某个负载所需的硬件资源不足而引起.但是过多的CPU使用通常可以通过查询优化(特

详解MySQL性能优化(一)_Mysql

一.MySQL的主要适用场景1.Web网站系统 2.日志记录系统 3.数据仓库系统 4.嵌入式系统 二.MySQL架构图:   三.MySQL存储引擎概述 1)MyISAM存储引擎 MyISAM存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件.首先肯定会有任何存储引擎都不可缺少的存放表结构定义信息的.frm文件,另外还有.MYD和.MYI文件,分别存放了表的数据(.MYD)和索引数据(.MYI).每个表都有且仅有这样三个文件做为MyISAM存储类型的表的存储,也就是说不管这个表

Mysql性能优化案例研究-覆盖索引和SQL_NO_CACHE_Mysql

场景 产品中有一张图片表pics,数据量将近100万条,有一条相关的查询语句,由于执行频次较高,想针对此语句进行优化 表结构很简单,主要字段: 复制代码 代码如下: user_id 用户ID picname 图片名称 smallimg 小图名称 一个用户会有多条图片记录,现在有一个根据user_id建立的索引:uid,查询语句也很简单:取得某用户的图片集合: 复制代码 代码如下: select picname, smallimg from pics where user_id = xxx; 优化

MySQL性能监控软件Nagios的安装及配置教程_Mysql

 Nagios是一款Linux上成熟的监视系统运行状态和网络信息的开原IT基础设施监视系统,Nagios能监视所指定的本地或远程主机及服务,例如HTTP服务.FTP服务等,同时提供异常通知.事件处理等功能,当主机或服务出现故障时,Nagios还可以通过邮件.手机短信等形式在第一时间进行通知.Nagios可运行在Linux和Unix平台上,同时提供一个可选的基于浏览器的Web界面,方便系统管理员查看系统的运行状态.网络状态.各种系统问题及日志异常等. 环境: 192.168.0.201