Mysql的语句执行很慢,如何分析排查?

1、检查服务器性能是否存在瓶颈

如果系统资源使用率比较高,比如CPU,硬盘,那访问肯定会慢,如果你发现是Mysl占比比较高,说明Mysql的读写频率高,如果本身网站访问量不大,说明你的sql参数,sql语句查询慢导致

df -h:终端中输入命令,将显示系统中每个分区的磁盘使用情况,包括已使用、可用和总容量。

 top :终端输入top 命令,每个进程的信息包括进程 ID(PID)、用户、CPU 使用率、内存使用率、进程名称等。你可以根据需要查看更多详细信息,例如进程的命令行参数、线程数等。

2、优化SQL参数

  1. max_connections:表示MySQL服务器可以同时处理的最大连接数。默认值为151,可以根据实际需求进行调整。
  2. wait_timeout:表示一个空闲连接在被断开之前可以保持多长时间。默认值为28800秒(8小时),可以根据实际需求进行适当调整。
  3. interactive_timeout:表示一个交互式连接在被断开之前可以保持多长时间。默认值为28800秒(8小时),可以根据实际需求进行适当调整。

(1)# 打开MySQL的配置文件 

sudo vi /etc/mysql/my.cnf

(2)编辑my.cnf文件,在[mysqld]部分添加以下内容:

      max_connections = 200
      wait_timeout = 600
      interactive_timeout = 600

      log-queries-not-using-indexes = on 

  1. max_connections:表示MySQL服务器可以同时处理的最大连接数。默认值为151,可以根据实际需求进行调整。
  2. wait_timeout:表示一个空闲连接在被断开之前可以保持多长时间。默认值为28800秒(8小时),可以根据实际需求进行适当调整。
  3. interactive_timeout:表示一个交互式连接在被断开之前可以保持多长时间。默认值为28800秒(8小时),可以根据实际需求进行适当调整。
  4. log-queries-not-using-indexes = on :记录未使用索引的查询

(3) 保存文件并重启MySQL服务

sudo service mysql restart

3、开启query相关变量,进行慢查询记录 

 show variables like '%query%';查看query相关变量

开启慢查询日志,此时OFF已经被我们用命令改为on了。

 4、慢查询语句

当我们执行一条SQL语句进行查询的话,如果执行时间超出了我们刚才设备的阈值10秒就会被记录日志文件中,定义为慢查询语句

 进入到记录的慢查询日志文件中,我们可以使用慢日志分析工具—mysqldumpslow对记录的sql语句进行筛选,(安装教程自己百度一下即可) 还有一个工具mysqlsla 分析慢查询日志(安装百度搜一下)

执行命令:

[root@chances126 /]# mysqldumpslow   /var/lib/mysql/mysql-slow.log

显示最慢的10条查询:mysqldumpslow -t 10 /path/to/slow-query.log

代表按照SQL执行时间,返回slowlog中前4条慢:mysqldumpslow -a -s t -t 4 -v /var/lib/mysql-slow.log,如下内容显示:

5、根据筛选出来的慢查询语句使用explain进行分析优化

[root@chances126 /]# 
mysql> use  sc_epg_release4
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> EXPLAIN select distinct a.*    from EPG_CONTENT_SERIES a join EPG_CATEGORY_ITEM b on a.CONTENT_CODE = b.ITEM_CODE     where a.ENABLE_STATUS=1 and b.STATUS=0 and a.EXTERNAL_CODE = '2000000200000010042000000006088';
+----+-------------+-------+------+---------------+-------------+---------+-----------------------------+-------+------------------------------+
| id | select_type | table | type | possible_keys | key         | key_len | ref                         | rows  | Extra                        |
+----+-------------+-------+------+---------------+-------------+---------+-----------------------------+-------+------------------------------+
|  1 | SIMPLE      | b     | ALL  | NULL          | NULL        | NULL    | NULL                        | 28504 | Using where; Using temporary |
|  1 | SIMPLE      | a     | ref  | seriesIndex   | seriesIndex | 387     | sc_epg_release4.b.ITEM_CODE |     1 | Using where                  |
+----+-------------+-------+------+---------------+-------------+---------+-----------------------------+-------+------------------------------+
2 rows in set (0.00 sec)

mysql> 

可以看出 a 表是全表查询,b表级别是 ref ,可以进一步分析 sql 了。
性能从最好到最差:system、const、eq_reg、ref、range、index和ALL. 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

羧基聚乙二醇生物素的制备方法;COOH-PEG-Biotin

羧基聚乙二醇生物素(COOH-PEG-Biotin)是一种常见的生物分子聚合物,具有多种应用,特别是在生物实验、药物研发和生物技术等领域。以下是对该化合物的详细解析: 一、基本信息 名称:羧基聚乙二醇生物素&#x…

Angular进阶之九: JS code coverage是如何运作的

环境准备 需要用到的包 node 18.16.0# Javascript 代码编辑"babel/core": "^7.24.7","babel/preset-env": "^7.24.7","babel-loader": "^9.1.3",# 打包时使用的 module, 给代码中注入新的方法# http…

云盘挂载 开机自动模拟 cmd- alist server

云盘挂载 开机自动模拟 cmd- alist server 打开Kimi智能助手, 网址:Kimi.ai - 帮你看更大的世界 (moonshot.cn) 问他: 帮我写一个vbs命令:在D:\sky目录下, 然后cmd, 进入命令行后, 输入 alist server 然后回车 这里 这个目录, 换成自己的 alist.exe所在目录 下面是我完善的示…

uni-app 保存号码到通讯录

1、 添加模块 2、添加权限 3、添加策略 Android: "permissionExternalStorage" : {"request" : "none","prompt" : "应用保存运行状态等信息,需要获取读写手机存储(系统提示为访问设备上的照片…

pdf工具

iLovePDF | 为PDF爱好者提供的PDF文件在线处理工具 https://www.ilovepdf.com/zh-cn 图片 pdf 合并成一个pdf也可以拆分

C++ | Leetcode C++题解之第231题2的幂

题目&#xff1a; 题解&#xff1a; class Solution { private:static constexpr int BIG 1 << 30;public:bool isPowerOfTwo(int n) {return n > 0 && BIG % n 0;} };

西邮计科嵌入式复习

西邮嵌入式复习 一、第一章复习二、第二章复习三、第三章复习四、第四章复习 一、第一章复习 二、第二章复习 三、第三章复习 四、第四章复习

【零基础】学JS之APIS

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…

使用Vsftpd服务传输文件

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 目录 一、文件传输协议 二、Vsftpd服务程序 三、TFTP简单文件传输协议 致谢 一、文件传输协议 FTP&#xff08;File Transfer Protocol&#xf…

vue3使用Echarts图表生成项目进度甘特图

先看效果 代码展示 <template><h1>项目进度甘特图</h1><div id"app"><!-- Echarts 图表 --><div ref"progressChart" class"progressChart"></div></div> </template><script setup&…

PMP是什么?PMP证书在国作用大吗?

PMP是全球认可的项目管理专业人士的通用语言&#xff0c;已在200多个国家得到认可。 1999年&#xff0c;中国国际人才交流基金会引入了项目管理知识体系指南和PMP职业资格认证。这一举措不仅推动了中国项目管理实践与国际接轨&#xff0c;也促进了项目管理培训和教育的发展&am…

Vue3 使用 Vue Router 时,prams 传参失效和报错问题

Discarded invalid param(s) “id“, “name“, “age“ when navigating 我尝试使用 prams 传递数据 <script setup> import { useRouter } from vue-routerconst router useRouter() const params { id: 1, name: ly, phone: 13246566476, age: 23 } const toDetail…

Golang:数据科学领域中的高性能并发编程新星

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 并发性能的卓越表现📝 系统级工具的便捷性📝 语言设计的简洁性📝 强类型系统的严格性📝 版本兼容性的稳定性📝 内置工具的全面性⚓️ 相关链接 ⚓️📖 介绍 📖 在数据科学和机器学习的广阔天地…

.Net Core 微服务之Consul(二)-集群搭建

引言: 集合上一期.Net Core 微服务之Consul(一)(.Net Core 微服务之Consul(一)-CSDN博客) 。 目录 一、 Consul集群搭建 1. 高可用 1.1 高可用性概念 1.2 高可用集群的基本原理 1.3 高可用集群的架构设计 1.3.1 主从复制架构 1.3.2 共享存储架构 1.3.3 负载均衡…

[每周一更]-(第105期):SSL证书过期后引发的DNS缓存问题

问题回顾&#xff1a; ​ 上班路上收到ZeroSSL邮件通知我们清点项目的SSL证书到期了&#xff0c;到公司还是登录网址查看信息&#xff0c;一看果然是7.10也就是今天到期&#xff0c;开始看下acme.sh的定制任务为何没生效&#xff0c;一看crontab脚本&#xff0c;日志任务丢垃圾…

【吊打面试官系列-ZooKeeper面试题】简述 Zookeeper 文件系统?

大家好&#xff0c;我是锋哥。今天分享关于 【简述 Zookeeper 文件系统?】面试题&#xff0c;希望对大家有帮助&#xff1b; 简述 Zookeeper 文件系统? Zookeeper 提供一个多层级的节点命名空间&#xff08;节点称为 znode&#xff09;。与文件系统不同的是&#xff0c;这些节…

centos安装minio文件系统服务器(踩坑版)

centos安装minio文件系统服务器&#xff08;踩坑版&#xff09; 引安装1. 下载2. 启动3. 创建access keys4. 创建buckets 坑 引 本来安装挺简单的&#xff0c;网上的教程一大堆&#xff0c;有些写的也挺详细的。不过自己还是踩到坑了&#xff0c;耽误了个把小时&#xff0c;特…

SpringBoot整合JWT示例教程

1. JWT简介 JSON Web Token (JWT) 是一种开放标准&#xff08;RFC 7519&#xff09;&#xff0c;它定义了一种紧凑且自包含的方式&#xff0c;用于在各方之间作为 JSON 对象安全地传输信息。由于这些信息是经过数字签名的&#xff0c;因此可以被验证和信任。JWT 通常用于身份验…

pycharm 占满磁盘

磁盘里没装什么大文件&#xff0c;发现磁盘被占的越来越满&#xff0c;使用工具查看到底是哪个文件如此之大。 发现罪魁祸首是pycharm&#xff01;&#xff01;&#xff01; 根据工具的提示找到对应的路径文件&#xff1a;E:\pycharm\PyCharmCE2022.3\python_packages 发现pa…

敏捷开发笔记(第10章节)--Liskov原则(LSP)

目录 1&#xff1a;PDF上传链接 10.1 Liskov替换原则&#xff08;LSP&#xff09; 10.2 一个违反LSP的简单例子 10.6 启发式规则和习惯用法 10.7 结论 1&#xff1a;PDF上传链接 【免费】敏捷软件开发(原则模式与实践)资源-CSDN文库 OCP背后的主要机制是抽象(abstraction…