【如何在MySQL中快速定位慢SQL语句呢?】本文出自头条号老王谈运维,转载请说明出处 。当你正在全神贯注的投入工作时MySQL语句变得特别缓慢,怎么办?如何在MySQL语句中找到低效率执行的SQL语句呢?这个问题困扰着一批又一批的程序猿 。
文章插图
什么是慢查询?
当SQL语句的查询返回结果速度超过了规定的时间(即通常为1S),则规定该查询语句为慢查询,慢查询会导致整个数据库的服务器性能下降,查询变得很缓慢 。
对于MySQL慢查询我们通常的查找解决思路是这样的,MySQL语句变慢一般分为三种情况:
- 逐渐变慢
- 突然变慢
- 偶然变慢
文章插图
传统的解决思路是这样的:
一、 查询日志
使用查询日志代码 。查看日志的具体情况
文章插图
slow_query_log 当这个参数设置为ON,可以搜寻到时间超过慢查询定义的时间(即1S)SQL语句 。
long_query_time 执行后会浏览所有SQL语句,当某些SQL语句执行超过设定时间后,系统会自动的将该条语句记录到日志中 。
所以,我们可以在日志中查询慢查询的SQL语句 。
二、 explain语句检查
文章插图
我们知道索引查询在列上,重复值很少时,索引效率很高 。例如说:像like’%****’ 之类的语句比较多时,就会导致SQL语句的慢查询的负载变得很高 。所以,我们需要在SQL查询语句中看类似这样的重复值查询语句是否很多 。
三、 硬件问题
说到硬件问题,我们就不得不谈到CPU(当CPU的负载变高时,是会影响计算机的处理运行速率的,会使得计算机变得很缓慢) 。所以,我们此时此刻得看CPU是否负载变得很高,导致MySQL语句执行变得很缓慢 。
文章插图
以上就例举常用的一些查找数据库变得缓慢的方法,是不是觉得很麻烦,还得一步步确认哪一个环节出现问题了 。下面就介绍你一个捷径,帮你省去很多麻烦 。
在这里不得不提到我们的运维神器 --王教授,助你团队实现高效运维,王教授的功能包括:
- 资产管理
- 健康诊断
- 统一监控
- 告警通知
- 运维审计
- 团队协作
工具地址:https://prof.wang/当中的“健康诊断”功能就可以轻松帮助大家定位到存在慢查询的SQL语句,对于使用云(阿里云、腾讯云、AWS)的用户,你只需要绑定监控的AcessKey,即可对资产进行监控、检查 。不需要你使用传统的方法,一一定位排查问题,费时耗力 。
文章插图
监控业务系统实时情况,快速指出系统问题所在,轻松变身运维达人 。
推荐阅读
- 两台电脑如何共享文件
- 如何在Linux中轻松隐藏文件和文件夹
- Mysql的并发控制原理
- App,小程序,H5,这三者该如何抉择?
- 如何入驻快手小店 快手小店企业店铺如何开通
- 论恐龙是如何灭绝的 恐龙灭绝的思考
- 苦荞茶的饮用方法和适用人群 如何鉴别真假苦荞茶
- 如何经营茶叶店怎样经营
- 买车容易养车难 开车要如何节省汽油开销?
- 如何玩转智能电视?知道这些操作,你就知道它到底有多好玩了