一、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. 十八、springcloud(四)熔断器

    1.熔断器(Hystrix) a.断路器机制 断路器很好理解, 当Hystrix Command请求后端服务失败数量超过一定比例(默认50%), 断路器会切换到开路状态(Open). 这时所有请求会直 ...

  2. Java_集合面试题

    Java_集合面试题 0.链表,队列和栈的区别? 链表是一种存储结构,指得是存储时候除了要存储数据元素之外,还要用数据元素一起的另外空间存储数据元素的关系. 队列和栈都是线性表,属于逻辑结构范畴,都是 ...

  3. bootstrap之navbar

    container:固定960px宽度,(如果又引入了响应式样式,则会适当调整,例如1600*900,它会显示1200px) container-fluid:自适应屏幕宽度,即满屏显示. row和co ...

  4. 【python】numpy中的shape用法

    转自 https://blog.csdn.net/u010758410/article/details/71554224# shape函数是numpy.core.fromnumeric中的函数,它的功 ...

  5. Git和Svn对比

    From: https://wenku.baidu.com/view/1f090e2e7275a417866fb84ae45c3b3567ecdd12.html Git和Svn对比   共享文档   ...

  6. Win7系统安装Centos7.0双系统(一)

    项目环境测试,过去在虚拟机安装只要配置好镜像很快就可以轻松安装,但是在真实机中安装就有些略坑.网上有很多说法是把iso文件中安装引导拷出来,试了很久还是觉得U盘镜像直接安装更便捷.靠谱.因为CentO ...

  7. 石板地面 Base Shape

    软件:Substance Designer 2017.1.2 石板地面 Base Shape 效果见图一 图一:Base Shape (2D View) 首先使用Cells 1(Pattern)结点生 ...

  8. layui流加载+h5自带模板

    @{ ViewBag.Title = "服务列表"; Layout = "~/Areas/hahaha/Views/Shared/_Head.cshtml"; ...

  9. js开发相关

    获取url中的参数 (function ($) { $.getUrlParam = function (name) { var reg = new RegExp("(^|&)&quo ...

  10. python3对excel文件读写操作

    ===========================excelfile文件============================================ ================= ...