`
ywu
  • 浏览: 455585 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

二、mysql优化技术-定位慢查询

阅读更多

如果我们在优化过程中能找到那些sql的执行拖慢了速度,就能有针对性的去优化的定的sql语句,做到事半功倍。

先来看几个跟慢查询相关的指令及配置

mysql服务端有几个跟慢查询相关的配置:

slow_query_log:是否记录慢查询日志

long_query_time:执行多长时间的sql语句算慢(不一定是查询),默认10s

log_slow_queries:慢查询日志文件位置(5.6及以上版本mysql使用slow-query-log-file参数)

 

查看慢查询时间
show variables like 'long_query_time';
 默认慢查询时间是10秒,这个时间有点长,需要把它改成1秒,可以通过命令行set方式修改
set long_query_time = 1;
 这种方式在服务器启动后会被覆盖,要想持久生效,需要修改配置文件my.cnf
在[mysqld]标签下配置这三项

 配置完重启服务
显示慢查询次数
show status like 'slow_queries';

 
接下来构建几个大表,用于测试,测试脚本见附件[sql.txt]
执行脚本时最好将脚本中的注释去掉创建函数时可能会报如下错误

在my.cnf中修改变量

 配置完重启
执行完脚本后,emp表中应该有4000000记录。
执行对表emp的查询

 可以看到,慢查询次数在增加。
仅仅知道慢查询次数还不够,需要定位到具体哪条sql执行慢。在log_slow_queries指定的位置,可以看到慢查询的日志,可以使用文本编辑器查看,也可以试用mysql自带的命令行工具mysqldumpslow查看。使用mysqldumpslow需要安装Perl模块,如果服务器还没安装Perl,需要先安装。如果能直接上网,那么可以直接使用yum install perl来安装,如果是在本地虚拟机,可以配置本地yum源,rhel下,将镜像文件加载到虚拟机,然后
cd /mnt/
mkdir cdrom
mount /dev/cdrom /mnt/cdrom/

cd /etc/yum.repos.d/
cp rhel-source.repo rhel-source.repo.bak
vi rhel-source.repo
 修改文件如下

 配置yum源的路径为挂在目录,enabled设置为1,保存退出,使用yum list查看配置是否生效,如果配置生效就可以安装Perl了。安装完,使用perl --version查看perl是否安装成功。
perl安装好后就可以使用mysqldumpslow来查看mysql的慢查询日志。
以下是mysqldumpslow的帮助

 
-s:排序顺序,主要有c,t,l,r和ac,at,al,ar,分别是按照query次数,时间,lock的时间和返回的记录数来排序,前面加了a的表示按平均值来排序;
-r:翻转排序顺序;
-t:是top n的意思,即为返回前面多少条的数据;
-g:后边可以写一个正则匹配模式,大小写不敏感的。
查看慢查询日志

 
定位出执行慢的sql语句之后,就能有针对性的去优化了,比如重写sql,添加索引等。
  • 大小: 7.9 KB
  • 大小: 3.3 KB
  • 大小: 4.2 KB
  • 大小: 3.8 KB
  • 大小: 5.2 KB
  • 大小: 7.3 KB
  • 大小: 10 KB
  • 大小: 6.4 KB
分享到:
评论

相关推荐

    mysql性能优化-慢查询分析、优化索引和配置.docx

    二、查询与索引优化分析 1. 性能瓶颈定位 使用SHOW命令可以查看MySQL的状态和变量,找出性能瓶颈。例如,SHOW STATUS可以显示系统状态信息,SHOW VARIABLES显示系统变量,SHOW INNODB STATUS查看InnoDB存储引擎...

    简单谈谈MySQL优化利器-慢查询

    MySQL优化是数据库管理中的关键环节,尤其是在处理大量数据时,高效的查询性能对于系统的响应速度至关重要。其中,慢查询日志是MySQL提供的一种有效工具,它能够记录那些执行时间超过预设阈值的查询语句,帮助数据库...

    MySQL索引原理及慢查询优化1

    MySQL索引原理及慢查询优化是数据库管理中的重要主题,尤其是在高并发、大数据量的互联网环境中,优化查询性能对于系统的整体效能至关重要。MySQL作为广泛使用的开源关系型数据库,其索引机制和查询优化技巧是开发者...

    MySQL实战优化-整理版

    - **应对策略**:采用连接池管理技术、调整MySQL配置参数(如max_connections)、优化应用代码减少不必要的连接创建与销毁操作。 #### 14. 数据丢失问题详解 - **redo日志**:记录所有修改数据页的操作,用于恢复未...

    工具查询MYSQL5 LOG 分析工具-mysql-log-analysis.zip

    MySQL日志分析是数据库管理中的重要环节,它可以帮助我们了解数据库的运行状态,优化SQL查询,定位性能瓶颈,以及在出现问题时进行故障排查。这款名为"mysql-log-analysis"的工具正是针对MySQL5的日志分析软件,它...

    MySQL优化.docx

    ### MySQL优化知识点详解 #### 一、MySQL简介 MySQL是一款由MySQL AB公司开发的开源数据库管理系统,后来该公司被Sun Microsystems收购。...通过以上介绍,希望能够帮助您更好地理解MySQL优化的关键点和技术细节。

    MySQL优化 实战视频课程

    本课程从理论到实践全面覆盖了MySQL优化的关键知识点,旨在帮助后台开发人员掌握高效的数据管理和查询技能。通过学习以上内容,开发者不仅能够解决当前遇到的问题,还能够在未来面对更复杂应用场景时具备足够的应对...

    mysql优化.pdf

    在进行MySQL优化时,我们需要对数据库进行深入分析,以便找到性能瓶颈并进行相应的调整。优化可以分为三个主要部分:优化概述、查询与索引优化分析以及配置优化。 首先,在优化概述部分,了解MySQL数据库常见瓶颈是...

    mysql高性能---mysql数据库的性能调优

    7. **日志优化**:调整binlog(二进制日志)和slow query log(慢查询日志)设置,可以监控并优化性能问题,同时确保数据安全。 8. **硬件优化**:升级硬件,如使用SSD替换HDD,增加内存容量,使用更快的CPU,都能...

    MySQL性能优化.pdf

    掌握MySQL优化技术成为开发工程师的一项必备技能。 #### 三、优化要考虑的问题 - **风险意识**:优化操作可能会引入新的问题或风险,特别是在已投入生产的复杂系统中。 - **稳定性与业务持续性**:在某些情况下,...

    2022-MYSQL-数据库-运维知识

    - 第三方工具如MySQL Workbench、pt-query-digest等帮助识别慢查询并优化。 4. **安全策略**: - 设置强密码,限制root用户远程访问,使用SSL加密连接,定期审计权限。 - 规范化用户权限管理,避免过度权限,...

    mysql查询优化之索引优化

    - **监控和分析**:定期检查EXPLAIN计划,分析索引的使用情况,使用MySQL的性能分析工具如pt-query-digest来识别慢查询并优化。 - **InnoDB存储引擎的索引优化**:InnoDB支持行级锁定,其主键索引是聚簇索引,其他...

    mysql 优化教程

    ### MySQL优化教程 #### 一、数据库设计要合理 在MySQL优化过程中,合理的数据库设计是基础,也是最为关键的一环。良好的设计不仅能够提高查询效率,还能减少存储空间的需求。 - **规范化**:通过规范化避免数据...

    MySQL的SQL查询性能优化技术.pptx

    MySQL的SQL查询性能优化技术是数据库管理中的关键环节,它涉及到如何提高数据库系统的响应速度,降低资源消耗,以及提升整体应用的效率。本讲座主要涵盖了以下几个核心知识点: 1. **基本准则**: - 遵循“小心”...

    Mysql性能优化教程

    通过以上知识点的梳理,我们可以看到MySQL性能优化不仅涉及到了索引优化、查询优化等方面的技术细节,还包含了数据库运维、架构设计等多个层面的知识点。这些知识点对于提升MySQL数据库的整体性能至关重要,也是...

    mysql数据库性能优化

    本文将围绕《构建高性能Web站点》一书中有关MySQL性能优化的部分内容进行详细解读,帮助读者更好地理解和掌握MySQL性能优化的方法和技术。 #### 二、友好的状态报告与正确使用索引 ##### 1. 友好的状态报告 - **...

Global site tag (gtag.js) - Google Analytics