MySQL优化(四) 慢查询的定位及优化
一、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优化(四) 慢查询的定位及优化的更多相关文章
- Mysql 多表联合查询效率分析及优化
1. 多表连接类型 1. 笛卡尔积(交叉连接) 在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用',' 如: SELECT * FROM table1 CROSS JO ...
- MySQL如何定位并优化慢查询sql
1.如何定位并优化慢查询sql a.根据慢日志定位慢查询sql SHOW VARIABLES LIKE '%query%' 查询慢日志相关信息 slow_query_log 默认是off关闭 ...
- Mysql慢查询定位和优化实践分享
调优目标:提高io的利用率,减少无谓的io能力浪费. 1.打开慢查询日志定位慢sql: my.cnf: slow_query_log slow_query_log_file=mysql.slow lo ...
- 深入MySQL(四):MySQL的SQL查询语句性能优化概述
关于SQL查询语句的优化,有一些一般的优化步骤,本节就介绍一下通用的优化步骤. 一条查询语句是如何执行的 首先,我们如果要明白一条查询语句所运行的过程,这样我们才能针对过程去进行优化. 参考我之前画的 ...
- MySQL性能优化(四):SQL优化
原文:MySQL性能优化(四):SQL优化 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/ ...
- MySQL优化四(优化表结构)
body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-top: 10 ...
- mysql优化:慢查询分析、索引配置优化
一.优化概述二.查询与索引优化分析a.性能瓶颈定位show命令慢查询日志explain分析查询profiling分析查询b.索引及查询优化三.配置优化 max_connections back_log ...
- mysql索引优化比普通查询速度快多少
mysql索引优化比普通查询速度快多少 一.总结 一句话总结:普通查询全表查询,速度较慢,索引优化的话拿空间换时间,一针见血,所以速度要快很多. 索引优化快很多 空间换时间 1.软件层面优化数据库查询 ...
- Mysql 优化,慢查询
最近项目上遇到点问题,服务器出现连接超时.上次也是超时,问题定位到mongodb上,那次我修改好了,这次发现应该不是这个的问题了. 初步怀疑是mysql这边出问题了,写的sql没经过压力测试,导致用户 ...
随机推荐
- python:数据类型dict
一.字典 key -->value 储存大量数据,而且是关系型数据,查询速度非常快 数据类型分类: 可变数据类型:list , dict, set 不可变的数据类型:int , bool, st ...
- crossdomain.xml配置不当的利用和解决办法
00x1: 今天在无聊的日站中发现了一个flash小站,点进crossdomain.xml一看,震惊 本屌看到这个*就发觉事情不对 百度一下,这是一个老洞,配置不当能引起各种问题就算能远程加载恶意的s ...
- Oracle中存储图片的类型为BLOB类型,Java中如何将其读取并转为字符串?
一,读取图片转为String类型: 需要使用Sun公司提供的Base64工具 String str = ((Map) list1.get(0)).get("EINVOICEFILE" ...
- alertjs Documentation
原文地址:https://github.com/PaulNieuwelaar/alertjs/wiki/Documentation#alertshow For version 3.0 document ...
- 虚拟机安装centOs+网络配置(完整说明)
1.新建虚拟机(标准) 选择 (我以后下安装操作系统) 选择Linux 操作系统 版本为CentOS(32位) 虚拟机的名称和位置任意 磁盘容量如下即可 设 ...
- Dubbo-admin管理平台的安装
1.到地址 https://github.com/alibaba/dubbo 下载dubbo源码 2.解压缩zip文件到 “ D:\技术资料\zookeeper\dubbo-master\dub ...
- android 开发 View _10_ Path之基本操作
转载地址:http://www.gcssloop.com/customview/Path_Basic/ 安卓自定义View进阶-Path之基本操作 在上一篇Canvas之图片文字中我们了解了如何使用C ...
- 3Linux常用命令
文件目录管理命令 1.touch touch 文件名 #创建空白文件 -a 修改读取(访问)时间atime -m 修改修改时间mtime -d 同时修改atime 和 mtime touch ...
- Linux输入子系统详解
input输入子系统框架 linux输入子系统(linux input subsystem)从上到下由三层实现,分别为:输入子系统事件处理层(EventHandler).输入子系统核心层(Input ...
- 规模预算 之 FP法(作成中)
五大要素 「外部入力」「外部出力」「内部論理ファイル」 「外部インタフェースファイル」「外部照会」 优点 1) 開発初期段階での概算が可能 2) エンドユーザが認識可能な計測法である(ユーザ目線での機 ...