【数据库】数据库的慢查询问题

news2024/12/22 22:59:15

现象: 在压测过程中发现接口返回数据非常慢,甚至超时,页面加载不出数据

问题定位:如果有慢查询怎么恢复?

1.查看服务日志,打印连接数据库超时,接口返回超时

  1. 查看数据库所在节点cpu占用很高
  2. 使用select CONCAT('kill',id,',') from information_schema.processlist where Command != 'Sleep' order by Time desc;按照查询时间从高到低查看当前数据库查询线程,找到耗时较久的查询线程,也可以加上Time字段看下当前数据库查询最大耗时多少

下图是processlist 的全字段,显示当前数据库存在的线程

说明 使用CONCAT('kill',id,',')是为了查询结果更方便的看出线程id,否则会连在一起,区分不来

  1. 使用select concat('kill',id,',') from informatino_schema.processlist where command != 'sleep' and Time >60 order by Time desc;

查询出当前DB查询耗时大于60秒的线程

5. sql执行kill {线程id}杀掉耗时就的线程,稍等一会,db查询会正常,查看业务是否恢复

当前系统压测时发现有慢查询,怎么确定系统慢查询的语句是什么?

  1. 数据库打开慢查询开关 set global slow_query_log ='ON'; 也可以在my.ini文件进行配置,永久生效
  2. 通过SHOW VARIABLES LIKE '%slow_query_log%'; 可以查看慢查询日志开关及日志文件

  1. 设置慢查询的超时时间,客户端重新连接db set global long_query_time =3 (设置慢查询的阈值为3s)
  2. 查询设置的慢查询超时是否生效show variables like ‘%long_query_time%’;
  3. 查看慢查询日志,在日志中即可看到慢查询的sql语句

使用mysqldumpslow 工具分析慢查询日志

# 得到返回记录集最多的10个SQL mysqldumpslow -s r -t 10/var/lib/mysql/slow.log

# 得到访问次数最多的10个SQL mysqldumpslow -s c -t 10/var/lib/mysql/slow.log

已知某条sql语句可能会有慢查询,怎么确定这个sql的问题?

1.客户端执行这条语句时在前面加 explain 关键字,即可看到这个sql语句的访问类型,如果是ALL,证明是硬盘表逐行遍历查询,效率很低,如果是ref指按索引遍历,rows执行过程遍历了表的多少行,如果大于1W那么执行速度肯定会慢,要确定是否增加了表索引,查询语句是否用到了索引(索引是否失效)

为什么会出现慢查询?

  1. 表数据量大,大于10W条,表没有索引
  2. sql语句是简单查询,查询条件简单
  3. 查询线程出现了死锁
  4. 内存不足

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

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

相关文章

夯实算法-跳跃游戏

题目:LeetCode 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 示例 1: 输入: nums [2,3,1,1,4] 输出: tru…

【测试沉思录】23. 如何实现基于场景的接口自动化测试用例?

作者:陈爱娇 编辑:毕小烦 自动化本身是为了提高工作效率,不论选择何种框架,何种开发语言,我们最终想实现的效果,就是让大家用最少的代码,最小的投入,完成自动化测试的工作。 基于这…

EMQ 宣布推出 LF Edge eKuiper 全新 Logo 标识

全球领先的开源物联网数据基础设施软件供应商 EMQ 映云科技宣布,即日起,将正式启用全新的 LF Edge eKuiper(以下简称 eKuiper)产品 Logo。焕然一新的 eKuiper 产品 Logo 标志着 EMQ 在不断提升品牌全球化战略之上,对于打造高性能、高可用、高安全的世界级开源软件产品的极致追求…

关于密码设置

使用一个密码并在数据泄漏时保护自己的其它账号 关于密码 现在好多软件,好多网站都需要我们设置密码,这个时候我们的处理办法一般分为2种。 对不同的软件设置不同的密码,这种理论上是最安全的,但是记不住啊,所以不实…

Letbook Cookbook题单——数组二分与双指针

Letbook Cookbook题单——数组二分与双指针 1. 两数之和 难度:简单 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。…

Locust学习记录5-任务属性【Task】

Task 当负载测试开始时,将为每个模拟用户创建一个User类的实例,他们将开始在自己的绿色线程中运行。当这些用户运行时,他们选择他们执行的任务,休眠一段时间,然后选择一个新任务。 这些任务时普通的python可调用文件…

windows环境下python连接openGauss数据库

文章目录一、python 介绍二、Python下载及安装三、openGauss Connectors (Psycopg2) 介绍四、openGauss Connectors (Psycopg2)下载并初始化五、连接并访问openGauss数据库六、问题总结(FAQ)一、python 介绍…

Maven学习笔记

Maven Maven是一个项目管理工具依赖管理 传统工程中我们直接把jar包放在项目中maven工程真正的jar包放在仓库中,项目中只防止jar包的坐标 一键构建 maven自身集成了tomcat插件,可以对项目进行编译、测试、打包、安装、发布等操作 仓库的种类 本地仓库远程…

计算机毕业论文java毕业设计选题源代码ssm校园兼职系统|求职招聘系统

💖💖更多项目资源,最下方联系我们✨✨✨✨✨✨ 目录 Java项目介绍 资料获取 Java项目介绍 3.1 需求分析 校园兼职系统主要是为了提高工作人员的工作效率和更方便快捷的满足用户,更好存储所有数据信息及快速方便的检索功能&am…

人工智能与机器学习

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 人工智能与机器学习📝人工智能相关概念☞什么是人工智能、机器学习、深度学习☞人工智能发…

思科防火墙NAT——实验

作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 1.实验 防火墙配置 其他配置 前言 本章将会讲解思科NAT配置的…

记一次 .NET 某工控软件 内存泄露分析

一:背景 1.讲故事 上个月 .NET调试训练营 里的一位老朋友给我发了一个 8G 的dump文件,说他的程序内存泄露了,一时也没找出来是哪里的问题,让我帮忙看下到底是怎么回事,毕竟有了一些调试功底也没分析出来,…

Hash与ZSet的常用命令以及其底层数据结构

目录hash类型命令hsethgethmsethmgethgetallhsetnxhdelhexitshincrby与hincrbyfloathkeys与hvalshlenhstrlen有序set型命令zaddzrange 与zrevrangezrangebyscore与zrevrangebyscorezcardzcountzscorezincrbyzrank 与 zrevrankzremzremrangebyrankzremrangebyscorezrangebylexzl…

MySQL学习笔记(十四)索引失效有哪些情况?

1.表和数据 CREATE TABLE t_user (id bigint(32) NOT NULL AUTO_INCREMENT,user_name varchar(40) DEFAULT NULL COMMENT 用户名,user_code varchar(40) DEFAULT NULL COMMENT 用户编号,phone varchar(11) DEFAULT NULL COMMENT 电话,age tinyint(3) DEFAULT NULL COMMENT 年龄…

微机----------------中断技术

目录 中断概述中断处理过程中断请求中断响应中断处理8086/8088中断中断类型中断优先级顺序⭐中断向量表中断处理过程中断概述 中断: 当CPU执行程序时,由于随机的事件引起CPU暂时停止正在执行的程序,而转去执行中断服务程序,处理完后又返回被终止的程序断点处继续执行,这个…

Bug系列路径规划算法原理介绍(四)——I-BUG 算法

本系列文章主要对Bug类路径规划算法的原理进行介绍,在本系列的第一篇文章中按照时间顺序梳理了自1986年至2018年Bug类路径规划算法的发展,整理了13种BUG系列中的典型算法,从本系列的第二篇文章开始依次详细介绍了其中具有代表性的BUG1、BUG2、…

数学基础从高一开始2、集合间的基本关系

高中数学人教 A 版必修一 集合间的基本关系 学习目标: (1)初步理解集合之间的包含与相等的含义; (2)能识别给定集合的子集和真子案,了解空集含义: (3)能进行自然语言、图形语言(Venn 图)、符号语言闻的转换,积萦抽象思维的经验, …

递归算法(及其衍生算法:缓存,分治,回溯)

文章目录一、初识递归二、缓存三、分治四、回溯一、初识递归 递归函数 终止条件 递归关系 终止条件: 当大问题被拆解成能轻松解决的小问题时,运行终止条件中的逻辑 递归关系: 定义如何将大问题拆解为小问题 例子:小名跑步。 …

这十一个副业在家就可以完成,疫情在家也有收入,建议收藏

2022年,谁还没有副业? 经过两年的疫情,我们都知道没有钱是一件非常不舒服的事情。现在的做法是:主营业务要求稳定,副业要求发展;好好发展副业是硬道理。 在过去的两年里,我一直在探索副业项目…

(六)Vue之数据代理

文章目录回顾Object.defineProperty方法数据属性valueenumerablewritableconfigurable访问器属性get()set(v: any)何为数据代理Vue中的数据代理Vue学习目录上一篇:(六)Vue之MVVC 回顾Object.defineProperty方法 Object.defineProperty方法的…