MySQL 优化—— SQL 性能分析

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

SQL 性能分析

SQL 执行频率

MySQL 客户端连接成功后,通过 show [session | global] status 命令可以提供服务其状态信息。通过下面指令,可以查看当前数据库 CRUD 的访问频次:

SHOW GLOBAL STATUS LIKE 'Com_______'; 七个下划线代表这个七个占位。

查询数据库中整体的 CURD 频次,一般针对 select 比较多的数据库。

慢查询日志

慢查询日志记录了所有执行时间超过指定参数(long_query_time,单位:秒,默认 10 s)的所有 SQL 语句的日志

MySQL 的慢查询日志默认没有开启,需要在 MySQL 的配置文件(/etc/my.cnf)中配置如下信息:

# 开启 MySQL 慢查询日志开关
slow_query_log=1

# 设置慢查询的时间为 2 秒,SQL 语句执行时间操作 2 s,就会视为慢查询,并记录到慢查询日志中。
long_query_time=2

配置完成需重启 MySQL 服务器进行测试,查看慢查询日志文件的信息:/var/lib/mysql/localhost-slow.log

查看慢查询日志的开关情况

show variables like 'slow_query_log';

profile 详情

能够在做 SQL 优化时帮助我们了解时间都耗费到哪去了。通过 have_profiling 参数,能够看到当前 MySQL 是否支持 profile 操作:

SELECT @@have_profiling;

默认情况下是关闭的(0),通过 set 语句可以选择在 session/global 级别开启 profile

SELECT @@profiling;:查看 profiling 是否开启

SET profiling = 1;:开启 profiling

相关操作效果:

# 查看每一条 SQL 的耗时基本情况
show profiles;

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

# 查看指定 query_id 的 SQL 语句 CPU 的使用情况
show profile cpu for query query_id;
  1. show profiles\

    列分别是:SQL 语句的 id,执行时间秒,具体的 SQL 语句。

  2. show profile for query 25

    这条语句在各个状态的耗时详细情况。

  3. show profile cpu for query 79

    可以看到具体语句 CPU 的情况。

explain 执行计划

explain 或者 desc 命令获取 MySQL 如何执行 select 语句 的信息,包括 select 语句执行过程中表如何连接和连接顺序。

语法:explain select 语句

explain 具体字段解析:

那么一般情况下重点关注的是以下几个字段:

  • type:一般业务情况下是优化到 const、ref(如果 type 类型是在后面的话)
  • possible_keys:可能会用到的索引与实际用到的索引进行对比,看看是否能通过索引来进行优化。
  • key:实际用到的索引。
  • key_len:索引的最大长度,越短越好(不丢失精度前提下)。
  • filtered:值越大越好
  • Extra:其他信息,也比较重要。

小结:

对于 SQL 性能分析这章,学习了 4 个点:

  1. SQL 执行频率:查看数据库中查询是否执行频率最高。
  2. 慢查询日志:查询哪些 SQL 语句超过了规定时间,标记为慢查询。
  3. profile 详情:查看具体的 SQL 语句执行的耗时时间,包括各个阶段的用时以及 CPU 情况。
  4. explain\desc:查看具体 SELECT 执行计划,根据查询到的字段去进行 SQL 优化的方案。

后续将学习 SQL 优化的具体方案,以及不同的 SQL 优化。文章来源地址https://www.toymoban.com/news/detail-635406.html

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

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

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

相关文章

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

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

    2024年02月15日
    浏览(62)
  • Mysql的SQL性能分析【借助EXPLAIN分析】

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

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

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

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

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

    2024年02月12日
    浏览(49)
  • 【性能优化】MySQL百万数据深度分页优化思路分析

            一般在项目开发中会有很多的统计数据需要进行上报分析,一般在分析过后会在后台展示出来给运营和产品进行 分页查看 , 最常见的一种就是根据日期进行筛选 。这种统计数据随着时间的推移数据量会慢慢的变大,达到百万、千万条数据只是时间问题。 一、数

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

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

    2024年02月09日
    浏览(59)
  • Mysql8.0.x新特性及其性能优化分析

    8.0.17及之后的版本更新的内容比较多,推荐使用8.0.17及之后的版本。 参考文档: 添加弃用和删除的特性: https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html 添加弃用和删除的参数: https://dev.mysql.com/doc/refman/8.0/en/added-deprecated-removed.ht ml Mysql8 InnoDB 架构: https://dev.mysql.com/doc/refm

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

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

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

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

    2024年01月20日
    浏览(48)
  • 数字频率合成器dds的量化性能分析matlab仿真

    目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 DDS的基本原理 4.2 DDS的量化性能分析 5.完整工程文件         数字频率合成器dds的量化性能分析matlab仿真,分别定义累加器位宽,截位位宽,模拟DAC位宽等,分析不同的量化位宽对DDS信号输出频谱的影响。

    2024年01月23日
    浏览(98)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包