SQL查询比较慢,如何进行排查?如何进行SQL优化?

news2024/9/22 11:25:52

目录

一、开启慢查询日志

二、SQL优化

 三、总结


一、开启慢查询日志

SQL慢查询是指执行时间较长的SQL语句,可能导致系统性能下降和响应时间延长。通过以下步骤可以开启慢查询日志记录:

#查询是否开启慢查询日志 slow_query_log显示ON说明已开启,显示OFF说明未开启

show variables like '%slow_query_log%';

#开启慢查询日志

set global slow_query_log = 1;

# 确认慢查询日志是否已开启 slow_query_log的值应该为ON,表示慢查询日志已经成功开启。

show variables like '%slow_query_log%';

#默认情况下,MySQL会将执行时间超过10秒的查询认定为慢查询

# 设置全局的超过5秒就记录到日志文件中 如果等于0可以记录所有的SQL语句

set global long_query_time = 5;

# 慢查询日志的记录位置命令

show variables like '%slow_query_log_file%';

二、SQL优化

SQL优化是通过改进SQL语句数据库结构设计来提高查询性能和效率的过程。如果SQL执行查询操作比较慢有以下四个原因

一)没有索引或者SQL没有命中索引导致索引失效(explain分析SQL计划)

        可以利用explian关键字分析SQL执行计划,查看SQL有没有命中索引。如果发现慢查询的SQL没有命中索引,可以尝试优化这些SQL语句,保证SQL走索引执行。我们在优化SQL或者是添加索引的时候,都需要符合最左匹配原则。

二)单表数据量过多,导致查询瓶颈(水平、垂直切分

可以对表进行切分,水平切分或垂直切分。

水平切分:是把一张数据行数达到千万级别的大表,按照业务主键切分为多张小表,这些小表可能达到100张甚至1000张。

 垂直切分:将一张单表中的多个列,按照业务逻辑把关联性比较大的列放到同一张表中。

 三)网络原因或者机器负载过高(读写分离

通过搭建MySQ读写分离,主库写、从库读。MySQL支持一主多从的分布式部署,我们可以将主库只用来处理写数据的操作,而多个从库只用来处理读操作。在流量比较大的场景中,可以增加从库来提高数据库的负载能力,从而提升数据库的总体性能。

 四)热点数据导致单点负载不均衡(热点数据加缓存

这种情况下,除了对数据库本身的调整以外,还可以增加缓存。将查询比较频繁的热点数据预存到缓存当中,比如Redis、MongoDB、ES等,以此来缓解数据的压力,从而提高数据库的响应速度。

 三、总结

SQL查询比较慢可以通过开启慢查询日志进行分析,定位到问题之后可以通过explain关键字进行SQL计划执行分析、水平/垂直分表、搭建主从集群、热点数据加入redis缓存等方式对SQL进行优化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/564335.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

广和通携手有人物联网完成5G SUL辅助上行功能验证

近日,广和通5G模组FM650-CN已在商用网络中实现5G SUL上行能力增强,助力有人物联网工业路由器在仿真网络环境中完成SUL辅助上行功能的验证。本次验证成功,意味着FM650-CN已具备SUL辅助上行商用能力,有利于推动更多5G终端支持SUL特性…

es 7 Es分布式基础

目录 复杂特性es已经做了分片副本负载均衡实现 设置分片数副本数 双机器读写 自动横向扩容 Node 节点宕机主节点切换 数据路由 增删改操作 读操作 _bulk 复杂特性es已经做了分片副本负载均衡实现 1.每个索引包含多个分片 设置分片数副本数 双机器读写 自动横向扩容 No…

React | React的CSS方式

✨ 个人主页:CoderHing 🖥️ React.js专栏:React的CSS方式 🙋‍♂️ 个人简介:一个不甘平庸的平凡人🍬 💫 系列专栏:吊打面试官系列 16天学会Vue 11天学会React Node专栏 &#x…

Axure教程—多色折线图(中继器)

本文将教大家如何用AXURE中的中继器制作多色折线图 一、效果介绍 如图: 预览地址:https://xpdm3g.axshare.com 下载地址:https://download.csdn.net/download/weixin_43516258/87814320 二、功能介绍 简单填写中继器内容即可动态显示值样…

AppJoint2-2023再看安卓组件化框架

零、什么是组件化 为了避免一些小伙伴一脸懵的进来,又一脸懵的出去,我先简单的说一下什么是组件化。 开发程序时,我们都希望功能间的耦合度尽可能的低,这样的好处是:便于并行开发、代码易于维护、出问题时也好定位。…

抖音seo矩阵系统源码开发开源型私有化部署方案

抖音SEO矩阵系统是基于抖音平台的搜索引擎优化技术的一种系统,其主要作用是通过一系列的技术手段,提高抖音视频的曝光和排名,使其获得更多的流量和粉丝。在本文中,我们将介绍抖音SEO矩阵系统的开发技术,包括系统设计、…

map reduce实现累加器

需求:数组长度为100,每一项为对应下标,累加求和。 切题思路: 1.如何声明一个长度为100的数组?答:new Array(100) 2.数组每一项如何比前一项1 答:map(item,index)index为数组下标,…

企业推行OKR的必要条件

今天我们的话题是“OKR在企业落地执行,有哪些必要条件?” 对于有落地 OKR 经验的人可能更深有感触,OKR理解起来容易,但落地起来却困难重重,常言道“万事开头难”,那接下来我们就先从落地 OKR 的先决条件开始说起吧。 …

我的创作纪念日,成为创作者的第512天

机缘 从事编程岗一有将近4年的时光了,但正在开始总结写博客还是一年前,是在百度搜素资料了解到的CSDN开发者社区。在CSDN认识了很多技术大牛,他们的文章记录了他们的学习路径,看到他们从小白一步一步成长为大牛,这才下…

大数运算(加法,减法,乘法,除法)

目录 一.大数加法 1.题目描述 2.问题分析 3.代码实现 二.大数减法 1.题目描述 2.问题分析 3.代码实现 三.大数乘法 1.题目描述 2.问题分析 3.代码实现 四.大数除法 1.题目描述 2.问题分析 3.代码实现 一.大数加法 1.题目描述 以字符串的形式读入两个数字&#…

Smartbi电子表格故事之高效营销活动后的自助数据分析

自助数据分析是BI的潮流,但几乎都是数据可视化流派,Smartbi电子表格另辟蹊径,在Excel中提供自助分析的能力,然后通过服务器进行发布,这个功能我们称之为“Excel融合分析”,目前在免费版中即可体验。 系统数…

Python脚本如何定时运行

一、背景 很多时候,我们使用Python编写好的各种脚本,会有定时运行的需求,希望脚本能每天在指定的时间点定时运行,比如:定时发送消息、定时发送邮件、定时执行自动化测试脚本等。 定时运行脚本常用的有2种方式&#x…

LeetCode:30. 串联所有单词的子串

30. 串联所有单词的子串 1)题目2)思路3)代码4)结果 1)题目 给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子…

CentOS 7安装redis

一、概述 1、redis介绍 Redis 全称 Remote Dictionary Server(即远程字典服务),它是一个基于内存实现的键值型非关系(NoSQL)数据库 2、redis的特点 支持数据持久化 redis支持数据的持久化,可以将内存中的…

IDEA 2022.2 安装以及自定义优化

IDEA2022.2 安装以及自定义优化 文章目录 IDEA2022.2 安装以及自定义优化安装图解获取激活码自定义优化文件编码设置设置类文档注释和方式注释模板方法分割线 常用插件离线安装 安装图解 静默卸载(旧版本的设置和配置将不会被删除) 获取激活码 略…

芯片设计_IC行业到底还值不值得入?

前几天哲库的关停让不少想入行IC的人人心惶惶,这也让不少人引起思考,IC行业的未来发展如何?还值不值得入行?给大家分析一下原因,大家就可自行判断到底可不可入?还能火多久? 一、分析芯片行业市场情况 芯片是典型的周期成长行业&#xf…

flowable的流程任务统计sql(续)

继续之前的文章,我们这里还需要进行按月统计,同时为了适应jeecg的图形显示,所以做了一些调整如下: 1、按月统计任务数量 select DATE_FORMAT(c.days, %Y%m) months, count(num) num from (SELECT DATE_FORMAT(START_TIME_, %Y-%m…

u盘无法复制过大文件怎么解决?揭秘!

大家在使用U盘的时候,有没有发现有的文件不能够复制到U盘,这是怎么回事呢?其实是文件太大了,那么u盘无法复制过大文件怎么解决?本文给大家推荐了3个靠谱好用的方法,一起来学习一下! 一、案例分享 “求救!求救!买了一…

栈和队列的概念和实现

栈 栈 定义:只能在一端进行插入或删除操作的的线性表 主要特点:后进先出 存储结构的实现 顺序存储结构 链式存储结构 用途:通常作为一种临时存放数据的容器。如果后存入的元素先处理则使用栈。比如用于保存函…

工业设备为什么要实现状态监测?

在现代工业生产中,实现状态监测对于工业设备的运行和维护至关重要。状态监测是一种通过实时数据采集和分析来监测设备运行状况的技术,它能够提供对设备健康状况的准确评估,并帮助预测潜在故障和优化维护计划。 在设备管理领域,我们…