首页 > 数据库 >MySQL22 - SQL性能分析

MySQL22 - SQL性能分析

时间:2023-01-09 15:33:44浏览次数:42  
标签:语句 profile SHOW 性能 SQL MySQL22 日志 SELECT

SQL性能分析

  • SQL执行频率

    • 通过 SHOW [SESSION|GLOBAL] STATUS 命令可以提供服务器状态信息,通过以下指令可以查看当前数据库的INSERT、UPDATE、DELETE、SELECT的访问频次

    • SHOW GLOBAL STATUS LIKE 'Com_______'; //模糊查询七个下划线,涵盖基本语句
      
  • 慢查询日志

    • 用于定位哪些SQL语句执行效率比较低,从而对其进行优化

    • 用于记录所有执行速度超过预设指定时间(默认10秒)的所有SQL语句的日志

    • 慢查询日志默认未开启,需要在MySQL配置文件(/etc/my.cnf)中进行配置

      • 查询是否开启慢查询

      • SHOW VARIABLES LIKE 'slow_query_log';
        
    • /etc/my.cnf文件的配置信息

      • slow_query_log = 1 //开启MySQL慢日志查询开关
      • long_query_time = 2 //设置慢日志的时间为2秒,SQL语句执行时间超过2秒,就会视为慢查询记入慢日志
  • profile详情

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

      • SELECT @@have_profiling;
        
    • 查看profile是否开启

      • SELECT @@profiling;
        
    • 开启profile

      • SET profiling = 1;
        
    • 查看之前执行的SQL语句耗时情况

      • SHOW PROFILES;
        
    • 查看指定query_id的SQL语句的耗时情况

      • SHOW PROFILE FOR QUERY 140;
        
  • explain 执行计划

    • 在 SELECT 语句前加 EXPLAIN 关键字,获取MySQL如何执行SELECT语句的信息,包括SELECT执行中表的连接和执行顺序

    • EXPLAIN SELECT * FROM tb_user;
      

标签:语句,profile,SHOW,性能,SQL,MySQL22,日志,SELECT
From: https://www.cnblogs.com/Ashen-/p/17037213.html

相关文章

  • MySQL21 - 索引
    索引什么是索引索引相当于一本书的目录,为了缩小扫描范围而存在、提高查询效率的一种数据结构一张表的一个字段可以添加索引,多个字段也可以联合起来添加索引在任何数据......
  • MySQL入门之查询操作
    单表查询SELECT[DISTINCT]*|<字段名1,字段名2,字段名3,...> FROM<表名> [WHERE<条件查询表达式1>] [GROUPBY<字段名>[HAVING<条件表达式2>]] [ORDERBY<字段......
  • mysql性能优化explain了解
    总结索引的设计原则:1.**最适合**索引的列是出现在**WHERE子句**和连接子句中的列。2.索引列的基数越大(取值多、重复值少),索引的效果就越好。3.使用**前缀索引**可以......
  • MySQL入门之表和数据的操作
    数据表的操作创建数据表时,要先use数据库名;来确定要操作的数据库。创建数据表CREATE[TEMPORARY]TABLE[IFNOTEXISTS]表名(字段名字段类型[字段属性]...)[表选项]......
  • MySQL 同步多张表到目标库
    vi/etc/my.cnf#目标库[mysql]host=172.16.1.10user=rootpassword=xxxxxxxx#源数据库[mysqldump]host=127.0.0.1user=rootpassword=xxxxxxxxssl-mode=DISABLED=====......
  • 使用SQL语句中的Group by分组并计算每组的数量
        ......
  • SQL join
    ####oraclejoin测试######SQLjoin用于把来自两个或多个表的行结合起来。##重要信息:例子来源于runoob,并且https://www.runoob.com/sql/sql-join.html图示解释这7......
  • 【学习笔记】动态SQL
    动态SQL1.概念动态SQL:动态SQL是MyBatis的强大特性之一。如果你使用过JDBC或其它类似的框架,你应该能理解根据不同条件拼接SQL语句有多痛苦,例如拼接时要确保不能......
  • sql server技巧类sql语句
    1、1=1,1=2的使用,在SQL语句组合时用的较多“where1=1”是表示选择全部“where1=2”全部不选,如:if@strWhere!=’’beginset@strSQL=‘selectcount(*)asTotal......
  • mysql安装与配置
    下载mysql进入msql官网downloads点击此链接点击链接点击绿框,选择版本下载第一个配置文件在mysql的安装目录下创建my.ini将下面的代码输入进去[mysql]default......