MySQL SQL性能分析,快速排查SQL执行慢的原因(SQL优化 一)

这篇具有很好参考价值的文章主要介绍了MySQL SQL性能分析,快速排查SQL执行慢的原因(SQL优化 一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在开发和维护数据库应用程序时,优化SQL查询的性能是至关重要的。MySQL提供了一些强大的工具和技术,帮助我们进行SQL性能分析,找出潜在的瓶颈并进行相应的优化。

查看SQL的执行频率

show [ session| global ] status 命令查看服务器状态信息,可以查看当前数据库的INSERT、UPDATE、DELETE、SELECT的访问频次

-- session 是查看当前会话的select(当前数据库,关闭数据库重置) ;
show session status like 'com_select';
-- 查询全部
show session status like  'com_______';
-- global 是查询全局数据(整个连接的所有数据库) ;
show global status like  'com_______';

慢查询日志(Slow Query Log)

MySQL的慢查询日志是一种记录执行时间超过阈值(默认10s)的SQL语句的日志,通过启用慢查询日志,我们可以收集执行时间较长的SQL语句,进而分析和优化这些查询。

-- 通过命令 - 查看慢查询日志状态(默认是开启的)
show variables like 'slow_query_log';
-- 时间参数
show variables like 'long_query_time';

-- 也可以修改

-- 关闭和开启
-- set global slow_query_log = 'off';
set global slow_query_log = 'on';

-- 设置时间阈值,SQL语句执行时间超过10秒,就会视为慢查询,记录慢查询日志
set session long_query_time =10;

MySQL SQL性能分析,快速排查SQL执行慢的原因(SQL优化 一),MySQL数据库,mysql,sql,数据库

命令修改只是对当前回话状态有效,当关闭数据库后,会重置,如果想全局服务器有效,就修改配置文件(Windows是my.ini,一般在MySQL数据安装目录下。Linux是my.cnf ,该文件通常位于 /etc 目录下,或者MySQL安装目录下)。

找到该位置的配置就能修改慢查询日志状态了,1:开启,0:关闭,时间参数是10s

MySQL SQL性能分析,快速排查SQL执行慢的原因(SQL优化 一),MySQL数据库,mysql,sql,数据库

然后执行查询语句,对数量有一定要求(可能10w+数据到达1秒),才能到达慢查询时间阈值。

通过慢查询日志,就可以定位出执行效率比较低的SQL,从而有针对性的进行优化。

explain命令

explain命令是MySQL提供的一个强大的工具,用于分析查询语句的执行计划,通过执行explain命令,我们可以获取查询语句的执行计划、访问的索引、表之间的连接方式等重要信息。这些信息可以帮助我们理解查询的执行过程,找出可能存在的性能问题,并做出相应的优化。

-- 直接在select语句之前加上关键字 explain / desc

explain select 列名 from 表名 where 条件;

-- 
explain select name from employees where name='张三' ;

MySQL SQL性能分析,快速排查SQL执行慢的原因(SQL优化 一),MySQL数据库,mysql,sql,数据库

MySQL SQL性能分析,快速排查SQL执行慢的原因(SQL优化 一),MySQL数据库,mysql,sql,数据库

查询性能分析器(Query Profiler)

MySQL提供了一个查询性能分析器,可以帮助我们深入了解查询语句的执行情况。通过查询性能分析器,我们可以获取查询语句的执行时间、扫描的行数、使用的索引等详细信息。这些信息可以帮助我们找出查询中的瓶颈,并针对性地进行性能优化。

-- 查询profiling状态
SELECT  @@profiling ;


-- 开启或关闭
SET profiling = 1;
SET profiling = 0;

-- 查询SQL耗时
show profiles

-- 查看指定query_id的SQL语句各个阶段的耗时情况
show profile for query 5;

-- 查看指定query_id的SQL语句CPU的使用情况
show profile cpu for query 5;

数据库优化工具

除了MySQL自带的工具外,还有一些第三方的数据库优化工具可以帮助我们进行SQL性能分析。比如,Percona Toolkit(开源工具集)、Enterprise Monitor(是商用的)。文章来源地址https://www.toymoban.com/news/detail-728741.html

到了这里,关于MySQL SQL性能分析,快速排查SQL执行慢的原因(SQL优化 一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mysql的SQL性能分析【借助EXPLAIN分析】

    要说sql有问题,需要拿出证据,因此需要性能分析 Mysql中有专门负责优化SELECT语句的优化器模块,主要功能:通过计算分析系统中收集到的统计信息,为客户端请求的Query提供他认为最优的执行计划(它认为最优的数据检索方式,不见得是DBA认为是最优的,这部分最耗费时间,

    2024年02月12日
    浏览(58)
  • Mysql高级2-SQL性能分析

    MySQL客户端 连接成功后,通过show [session | global] status 命令可以提供服务器状态信息,通过如下指令,可以查看当前数据库的insert,update,dalete,select的访问频次 说明1:上面的数据库被执行查询4次   慢查询日志记录了所有执行时间超过指定参数(long_query_time 单位:秒,默认

    2024年02月15日
    浏览(42)
  • [MySQL] SQL优化之性能分析

    🌈键盘敲烂,年薪30万🌈 目录 一、索引优化 1、索引是什么: 2、索引的数据结构: 3、索引种类: 4、sql分析(回表查询) 二、定位慢查询语句 1、慢查询日志 2、profile详情 3、explain执行计划(重点) 4、查看执行频次   1、索引是什么: 通过一些约束,快速查询到相应字段

    2024年02月05日
    浏览(36)
  • mysql-sql性能分析工具

            MySQL 客户端连接成功后,通过 show [session|global] status 命令可以提供服务器状态信息。通过如下指令,可以查看当前数据库的INSERT、UPDATE、DELETE、SELECT的访问频次: -- session 是查看当前会话 ; -- global 是查询全局数据 ; SHOW GLOBAL STATUS LIKE \\\'Com_\\\'; 慢查询日志记录了所有执

    2024年02月12日
    浏览(37)
  • 【MySQL数据库 | 第十九篇】SQL性能分析工具

    目录   前言: SQL执行频率: 慢查询日志: profile: profile各个指令: 总结:         本篇我们将为大家讲解SQL性能的分析工具,而只有熟练的掌握了性能分析的工具,才可以更好的对SQL语句进行优化。虽然我们在自己练习的时候对这种优化感知并不明显,但是如果我们要

    2024年02月09日
    浏览(43)
  • MySQL数据库进阶第二篇(索引,SQL性能分析,使用规则)

    本篇博客深入详细地介绍了数据库索引的概念和重要性。内容包含:索引的概念和目标、索引的优点与缺点。此外,博客还深入解析了三种主要的索引结构:B-Tree、B+Tree和Hash,提供了详细的结构解析和优化方法,并通过插图进一步增强了理解。 博客的部分内容专注于对B-Tr

    2024年02月21日
    浏览(46)
  • Mysql找出执行慢的SQL【慢查询日志使用与分析】

    慢查询的开启并捕获:开启慢查询日志,设置阈值,比如超过5秒钟的就是慢SQL,至少跑1天,看看生产的慢SQL情况,并将它抓取出来 explain + 慢SQL分析 show Profile。(比explain还要详细,可以查询SQL在MySQL数据库中的执行细节和生命周期情况) 运维经理 OR DBA,进行MySQL数据库服务

    2024年02月11日
    浏览(40)
  • MySQL进阶篇:索引(概述,结构,分类,语法,SQL性能分析,索引使用,设计原则)

    索引(index)是帮助MysQL 高效获取数据的数据结构 ( 有序 )。 在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。 优缺点: MySQL的索引是在存储

    2024年01月20日
    浏览(35)
  • 【MYSQL高级】Mysql找出执行慢的SQL【慢查询日志使用与分析】

    慢查询的开启并捕获:开启慢查询日志,设置阈值,比如超过5秒钟的就是慢SQL,至少跑1天,看看生产的慢SQL情况,并将它抓取出来 explain + 慢SQL分析 show Profile。(比explain还要详细,可以查询SQL在MySQL数据库中的执行细节和生命周期情况) 运维经理 OR DBA,进行MySQL数据库服务

    2024年02月13日
    浏览(33)
  • SQL执行慢的问题排查和优化思路

    待补充 待补充 大多数情况下都正常,偶尔很慢。 3.1.1 主要考虑原因 数据库在刷新脏页,例如redo log写满了需要同步到磁盘。 或者执行的时候,遇到锁,如表锁、行锁。 此次执行的SQL语句存在问题,且真实业务数据量大,便会导致速度极慢的问题。 【补充】 脏页 :当内存

    2023年04月24日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包