mysql性能的检查和调优方法

我一直是使用mysql这个数据库软件,它工作比较稳定,效率也很高。在遇到严重性能问题时,一般都有这么几种可能:

1、索引没有建好;

2、sql写法过于复杂;

3、配置错误;

4、机器实在负荷不了;

1、索引没有建好

如果看到mysql消耗的cpu很大,可以用mysql的client工具来检查。

在linux下执行

/usr/local/mysql/bin/mysql -hlocalhost -uroot -p

输入密码,如果没有密码,则不用-p参数就可以进到客户端界面中。

看看当前的运行情况

show full processlist

可以多运行几次

这个命令可以看到当前正在执行的sql语句,它会告知执行的sql、数据库名、执行的状态、来自的客户端ip、所使用的帐号、运行时间等信息

在我的cache后端,这里面大部分时间是看不到显示任何sql语句的,我认为这样才算比较正常。如果看到有很多sql语句,那么这台mysql就一定会有性能问题

如果出现了性能问题,则可以进行分析:

1、是不是有sql语句卡住了?

这是出现比较多的情况,如果数据库是采用myisam,那么有可能有一个写入的线程会把数据表给锁定了,如果这条语句不结束,则其它语句也无法运行。

查看processlist里的time这一项,看看有没有执行时间很长的语句,要留意这些语句。

2、大量相同的sql语句正在执行

如果出现这种情况,则有可能是该sql语句执行的效率低下,同样要留意这些语句。

然后把你所怀疑的语句统统集合一下,用desc(explain)来检查这些语句。

首先看看一个正常的desc输出:

mysql> desc select * from imgs where imgid=1651768337;

+----+-------------+-------+-------+---------------+---------+---------+-------+------+-------+

| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |

+----+-------------+-------+-------+---------------+---------+---------+-------+------+-------+

| 1 | SIMPLE | imgs | const | PRIMARY | PRIMARY | 8 | const | 1 | |

+----+-------------+-------+-------+---------------+---------+---------+-------+------+-------+

1 row in set (0.00 sec)

时间: 2024-09-01 15:30:18

mysql性能的检查和调优方法的相关文章

mysql 性能的检查和调优方法_Mysql

在遇到严重性能问题时,一般都有这么几种可能:1.索引没有建好; 2.sql写法过于复杂; 3.配置错误; 4.机器实在负荷不了; 1.索引没有建好 如果看到mysql消耗的cpu很大,可以用mysql的client工具来检查. 在linux下执行 /usr/local/mysql/bin/mysql -hlocalhost -uroot -p 输入密码,如果没有密码,则不用-p参数就可以进到客户端界面中. 看看当前的运行情况 show full processlist 可以多运行几次 这个命令可

对话马丁·福勒(Martin Fowler)——第六部分:性能与过程调优

第一部分:重构第二部分:设计原则与代码所有权第三部分:进化型设计第四部分:灵活性与复杂性第五部分:测试驱动开发第六部分:性能与过程调优 可维护性与效率 比尔:我在丹佛机场的红地毯俱乐部(Red Carpet Club)[1]中常常碰到名人.今年夏天我碰到了 Calista Flockhart (卡莉斯塔·弗洛克哈特)[2], 而去年我碰到了你.我是个追星族,但是由于害怕哈里森·福特,没敢跟 Calista 搭讪.不过,你和我倒是坐下来喝了杯啤酒.记得当时你曾对我说过,应该以程序员能读懂的字符格式

性能测试知多少---性能分析与调优的原理

最近一直纠结性能分析与调优如何下手,先从硬件开始,还是先从代码或数据库.从操作系统(CPU调度,内存管理,进程调度,磁盘I/O).网络.协议(HTTP, TCP/IP ),还是从应用程序代码,数据库调优,中间件配置等方面入手. 单一个中间件又分web中间件(apache .IIS),应用中间件(tomcat .weblogic .webSphere )等,虽然都是中间件,每一样拎出来往深了学都不是一朝一夕之功.但调优对于每一项的要求又不仅仅是"知道"或"会使用"这么

详解Oracle的性能调优方法

本文将介绍几种Oracle调优的方法,包括调整内存分配.调整Library Cache.调整数据字典高速缓存等多种方法. Oracle是一个高性能数据库软件.用户可以通过参数的调整,达到性能的优化.性能优化主要分为两部分: 一是数据库管理员通过对系统参数的调整达到优化的目的: 二是开发人员通过对应用程序的优化达到调整的目的. 在此,仅就系统参数的调整进行探讨,而不涉及应用程序的优化.对系统参数的调整,可以分为以下几个部分: 1.调整内存分配 系统全局区(SGA)是一个分配给Oracle 包含Or

Hadoop虚拟化的性能对比和调优经验

虚拟化为Hadoop注入了前所未有的活力,从IT生产管理的角度,表现为以下几点: ·Hadoop和其他消耗不同类型资源的应用一起部署共享数据中心可以提高总体资源利用率: ·灵活的虚拟机操作使得用户可以动态的根据数据中心资源创建.扩展自己的Hadoop集群,也可以缩小当前集群.释放资源支持其他应用如果需要: ·通过与虚拟化架构提供的HA.FT集成,避免了传统Hadoop集群中的单点失败,再加之Hadoop本身的数据可靠性,为企业大数据应用提供了可靠保证. 基于这些原因,vSphere Big Da

快速定位隐蔽的sql性能问题及调优

在前几天,有个开发同事问我一个问题,其实也算是技术救援,他说在有个job数据处理的频率比较高,在测试环境中很难定位出在哪有问题,而且速度也还能接受,但是在生产环境中总是会慢一些,希望我能在测试环境中协助他们,看看是不是sql语句出什么问题了还是其它相关的问题. 这种类似实时监控的语句,从第一印象来说,很可能通过awr捕获不到,如果通过ash来捕获,因为测试环境中有几十套测试环境在运行,就算得到某个时间点的一些sql语句,直接在报告中映射到语句对应的schema信息还是有一些困难的.因为测试时间确

JVM调优总结(十)-调优方法

JVM调优工具 Jconsole,jProfile,VisualVM Jconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用.对垃圾回收算法有很详细的跟踪.详细说明参考这里 JProfiler:商业软件,需要付费.功能强大.详细说明参考这里 VisualVM:JDK自带,功能强大,与JProfiler类似.推荐. 如何调优 观察内存释放情况.集合类检查.对象树 上面这些调优工具都提供了强大的功能,但是总的来说一般分为以下几类功能 堆信息查看 可查看堆空间大小分配(年轻代

提高商业智能环境中DB2查询的性能-专用于数据仓库和B 的查询调优方法(2)

方法 1:在事实表与三个维度表之间定义适当的参照完整性约束 在 DB2 中,可以定义主键和外键约束,以允许数据库管理器对数据实施参照完整性约束.外键等参照约束还有助于提高性能.例如,如果修改 清单 2 中的查询中的子表达式 TMP1,去掉 PRODUCT_DIM 表上的本地谓词,那么,如果在 SALES_FACT.PRODUCT_ID 上创建一个外键约束,则优化器会消除 SALES_FACT 和 PRODUCT_DIM 之间的连接.如果创建了外键约束,则那样的连接被认为是无损的(lossless

mysql 性能的检查和优化方法_php实例

1.索引没有建好; 2.sql写法过于复杂; 3.配置错误; 4.机器实在负荷不了; 1.索引没有建好 如果看到mysql消耗的cpu很大,可以用mysql的client工具来检查. 在linux下执行 /usr/local/mysql/bin/mysql -hlocalhost -uroot -p 输入密码,如果没有密码,则不用-p参数就可以进到客户端界面中. 看看当前的运行情况 show full processlist 可以多运行几次 这个命令可以看到当前正在执行的sql语句,它会告知执行