一、SQL语句优化的一般步骤:

(1)通过 show status 命令了解各种 SQL 的执行效率;

(2)定位执行效率较低的 SQL 语句(重点是 Select);

(3)通过 explain 分析低效率的 SQL 语句的执行情况;

(4)确实问题并采取相应的优化措施;

二、优化

1、show status 命令

 格式: show [session | global] status like ...

如果不写[session | global],默认的是session,即取出当前回话的执行情况;

 如果想查询所有的(即MySql启动到现在的信息), 则增加 global 参数;

show status like "uptime"  //查询MySql启动的时间;
show status like "com_select" //查询MySql的查询次数
show status like "com_insert" //查询MySql的插入次数
show status like "com_update" //查询MySql的更新次数
show status like "com_delete" //查询MySql的删除次数
show global status like "uptime"  //查询MySql启动的时间;
show global status like "com_select" //查询MySql的查询次数
show global status like "com_insert" //查询MySql的插入次数
show global status like "com_update" //查询MySql的更新次数
show global status like "com_delete" //查询MySql的删除次数
show global status like "connections" //查询MySQL的连接数
show global status like "slow_queries" //获取慢查询的次数

2、如何查看和修改慢查询的时间?

默认情况下,MySql认为超过 10 秒才是一个慢查询;

(1)显示当前慢查询设置的时间:show variables like "long_query_time" ;

(2)修改慢查询的设置时间为1秒:set long_query_time=1

这时如果出现一条语句执行时间超过 1 秒, 就会统计到 show global status like "slow_queries" 查询的结果中;

3、如何把慢查询的 sql 记录到日志中?

默认的情况下,mysql不会记录慢查询的 sql 日志;

慢查询的启动:https://www.cnblogs.com/luyucheng/p/6265594.html

慢查询的启动及慢查询日志分析:https://blog.csdn.net/timchen525/article/details/75268151

扩展知识

(1)一般情况下,分号作为命令结束符;在写的存储过程或函数中也有分号,如果不将命令结束符修改,则会使存储过程或函数提前结束;所以为了存储过程或函数能够正常执行,我们需要修改命令结束符。

  delimiter $$

(2)删除自定义函数 rand_string

  drop function rand_string $$

MySQL优化(四) 慢查询的定位及优化的更多相关文章

  1. Mysql 多表联合查询效率分析及优化

    1. 多表连接类型 1. 笛卡尔积(交叉连接) 在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用','  如: SELECT * FROM table1 CROSS JO ...

  2. MySQL如何定位并优化慢查询sql

    1.如何定位并优化慢查询sql a.根据慢日志定位慢查询sql SHOW VARIABLES LIKE '%query%'      查询慢日志相关信息 slow_query_log 默认是off关闭 ...

  3. Mysql慢查询定位和优化实践分享

    调优目标:提高io的利用率,减少无谓的io能力浪费. 1.打开慢查询日志定位慢sql: my.cnf: slow_query_log slow_query_log_file=mysql.slow lo ...

  4. 深入MySQL(四):MySQL的SQL查询语句性能优化概述

    关于SQL查询语句的优化,有一些一般的优化步骤,本节就介绍一下通用的优化步骤. 一条查询语句是如何执行的 首先,我们如果要明白一条查询语句所运行的过程,这样我们才能针对过程去进行优化. 参考我之前画的 ...

  5. MySQL性能优化(四):SQL优化

    原文:MySQL性能优化(四):SQL优化 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/ ...

  6. MySQL优化四(优化表结构)

    body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-top: 10 ...

  7. mysql优化:慢查询分析、索引配置优化

    一.优化概述二.查询与索引优化分析a.性能瓶颈定位show命令慢查询日志explain分析查询profiling分析查询b.索引及查询优化三.配置优化 max_connections back_log ...

  8. mysql索引优化比普通查询速度快多少

    mysql索引优化比普通查询速度快多少 一.总结 一句话总结:普通查询全表查询,速度较慢,索引优化的话拿空间换时间,一针见血,所以速度要快很多. 索引优化快很多 空间换时间 1.软件层面优化数据库查询 ...

  9. Mysql 优化,慢查询

    最近项目上遇到点问题,服务器出现连接超时.上次也是超时,问题定位到mongodb上,那次我修改好了,这次发现应该不是这个的问题了. 初步怀疑是mysql这边出问题了,写的sql没经过压力测试,导致用户 ...

随机推荐

  1. Logistic Loss的简单讨论

    首先应该知道Logistic Loss和Crossing Entropy Loss本质上是一回事. 所以所谓的SoftMaxLoss就是一般二分类LogisitcLoss的推广.之所以在网络中采取这种 ...

  2. 关于Xilinx AXI Lite 源代码分析---自建带AXI接口的IP

    关于Xilinx AXI Lite 源代码分析---自建带AXI接口的IP 首先需要注意此处寄存器数量的配置,它决定了slv_reg的个数. 读写数据,即是对寄存器slv_reg进行操作: 关于AXI ...

  3. redis 安装配置学习笔记

    redis 安装配置学习笔记 //wget http://download.redis.io/releases/redis-2.8.17.tar.gz 下载最新版本 wget http://downl ...

  4. Java环境配置之JDK安装

    一.下载 现在JDK的版本很多.我下载的是jdk1.7 以下链接是jdk1.8的 http://www.oracle.com/technetwork/java/javase/downloads/jdk ...

  5. [UE4]Input Key Selector

    一.Input Key Selector:按键设置 二.On Key Selected:按键收集完毕后触发该事件. 三.点击On Key Selected控件后,会显示“...”,表示可以接受键盘输入 ...

  6. .net mvc 分页

    1.分页实体类 public class PageDto { public int PageIndex { get; set; } public int PageSize { get; set; } ...

  7. [SQL]T-Sql 递归查询(给定节点查所有父节点、所有子节点的方法)

    T-Sql 递归查询(给定节点查所有父节点.所有子节点的方法)   -- 查找所有父节点with tab as( select Type_Id,ParentId,Type_Name from Sys_ ...

  8. Windows和Linux查看端口占用

    Windows方法 TCP netstat -aon|findstr "TCP"|findstr "LISTENING"|findstr ":135[ ...

  9. debian系统的另一个包管理器aptitude

    最近在玩OPI的时候遇到了一个包因为各种依赖问题死活装不上.苦搜很久找到这个aptitude包管理器. 基于debain衍生的各种操作系统比较常用包管理器是apt,不过apt在遇到依赖问题的时候处理得 ...

  10. JVM内存区域详解(Eden Space、Survivor Space、Old Gen、Code Cache和Perm Gen)

    JVM区域总体分两类,heap区和非heap区.heap区又分为: Eden Space(伊甸园). Survivor Space(幸存者区). Old Gen(老年代). 非heap区又分: Cod ...