Mysql第三篇---响应太慢?数据库卡顿?如何优化?

news2024/11/19 0:19:30

Mysql第三篇—响应太慢?数据库卡顿?如何优化?

统计SQL的查询成本:last_query_cost

一条SQL查询语句在执行前需要确定查询执行计划,如果存在多种执行计划的话,MySQL会计算每个执行计划所需要的成本,从中选择成本最小的一个作为最终执行的执行计划。
如果想要查看某条SQL语句的查询成本,可以在执行完这条SQL语句之后,通过查看当前会话中的last_query_cost变量值来得到当前查询的成本。它通常也是评价一个查询的执行效率的一个常用指标。这个查询成本对应的是SQL语句所需要读取的页的数量。
sql命令如下:

SHOW STATUS LIKE 'last_query_cost';

比如我们现在创建了一个数据库表,代码如下:

CREATE TABLE part_tab19 (
		id int,
    c1 int,
    test_time datetime,
		PRIMARY KEY(id, test_time)
    )engine=INNODB PARTITION BY RANGE (month(test_time)) (
				PARTITION month1 values less than(2),
				PARTITION month2 values less than(3),
				PARTITION month3 values less than(4),
				PARTITION month4 values less than(5),
				PARTITION month5 values less than(6),
				PARTITION month6 values less than(7),
				PARTITION month7 values less than(8),
				PARTITION month8 values less than(9),
				PARTITION month9 values less than(10),
				PARTITION month10 values less than(11),
				PARTITION month11 values less than(12),
				PARTITION month12 values less than(13)
		);

然后我们使用存储过程往表里面存储100多万条数据;如下图:
在这里插入图片描述
看下如果我们按照联合主键中的其中一个主键查询的时候,它的查询成本是多少,如下图:
在这里插入图片描述
接下来我们使用普通列c1进行同样的查询,看看它的查询成本是多少,如下图:
在这里插入图片描述
像上面的这种查询成本比较高的sql语句,一般都是我们后期需要优化的。

定位执行慢的SQL:慢查询日志

MySQL的慢查询日志,用来记录在MySQL中响应时间超过阈值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10秒以上(不含10秒)的语句,认为是超出了最大忍耐时间值。
它的主要作用是,帮助我们发现那些执行时间特别长的SQL查询,并且有针对性地进行优化,从而提高系统的整体效率。当数据库服务器发生阻塞、运行变慢的时候,检查一下慢查询日志,找到那些慢查询,对解决问题很有帮助。比如一条sql执行超过5秒钟,就算慢SQL,希望能收集超过5秒的sql,结合explain进行全面分析。
默认情况下,MySQL数据库没有开启慢查询日志,需要手动来设置这个参数。如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。
慢查询日志支持将日志记录写入文件。

开启慢查询日志参数

1.开启slow_query_log
在使用前,需要先看下慢查询是否已经开启,使用下面这条命令即可:

show variables like 'slow_query_log';

如下图:
在这里插入图片描述
能看到slow_query_log=OFF,可以把慢查询日志打开,注意设置变量值的时候需要使用global,否则会报错:

set global slow_query_log='ON'

再来查看下慢查询日志是否开启,以及慢查询日志文件的位置:

show variables like '%slow_query_log%';

如下图:
在这里插入图片描述
能看到这里慢查询分析已经开启,同时文件保存在了SKUSER-ICQOUU76-slow.log中。

2. 修改long_query_time阈值
接下来看下慢查询的时间阈值设置,使用如下命令:

show variables like '%long_query_time%';

如下图:
在这里插入图片描述
这里如果想把时间缩短,比如设置为 1 秒,可以这样设置:

show global variables like '%long_query_time%';

设置完了再查看下阈值,如下图:
在这里插入图片描述

查看慢查询数目

查询当前系统中有多少条慢查询记录;代码如下:

show global status like '%Slow_queries%';

如下图:
在这里插入图片描述

慢查询日志路径

在C:\ProgramData\MySQL\MySQL Server 8.0\Data这里,如下图:
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

联盟认证 | 聚铭网络正式成为中国反网络病毒联盟成员

近日,聚铭网络凭借强劲的技术实力和产品优势,被认证为中国反网络病毒联盟(以下简称“ANVA联盟”)成员单位。作为国内领先的安全运营商,聚铭网络一直致力于网络安全智能分析和检测,提供全面的信息安全防护&a…

从一个webpack loader中学习

chalk:给终端输出加一些自定义的样式 loader-utils:webpack的loader配置中会通过options传入一些用户自定义参数,就可以通过该包提供的getoptions()获取 node-fetch:Node.js的模块,用于从远程服务器获取数据 关于bab…

vue按特定字符串切割后端传输的图片路径

一、分隔字符 /userfiles/1/attachment/null/2023/10/13967b6b8332413f92ab67735873aa76.jpg|/userfiles/1/attachment/null/2023/10/17fd6e2c16144e66b8cd3ec495e6745f.png 后端传来图片的路径是按照 | 进行分隔的 首先在return中定义数组 在methods中添加分隔方法 //将查询…

请求转发和响应重定向

请求转发与响应重定向是什么? 请求转发和响应重定向是两种在HTTP协议中常见的操作,用于在服务器和客户端之间传递数据。 请求转发(RequestDispatcher)是服务器收到请求后,从一个资源跳转到另一个资源的操作。这种操作…

机器学习-学习率:从理论到实战,探索学习率的调整策略

目录 一、引言二、学习率基础定义与解释学习率与梯度下降学习率对模型性能的影响 三、学习率调整策略常量学习率时间衰减自适应学习率AdaGradRMSpropAdam 四、学习率的代码实战环境设置数据和模型常量学习率时间衰减Adam优化器 五、学习率的最佳实践学习率范围测试循环学习率&a…

递归方法实现字符串反转函数

递归函数是一种在函数内部调用自身的函数。它通过将复杂的问题分解成更小的子问题来解决。递归函数通常包含两部分&#xff1a;基本情况和递归调用。请使用递归方法实现字符串反转的C语言函数。 #include <stdio.h>void reverseString(char* str) {///Begin///// 递归基…

【M365运维】给从本地同步到O365的DL添加 Send As权限

【问题】在一个混合部署的M365环境里&#xff0c;邮件系统已经从本地迁移到O365&#xff0c;相关的AD用户、AD 组等账号数据也都同步到了Azure AD。用户提出要求想为一个DL 添加 Send As 权限。 由于DL是从本地迁移到O365的&#xff0c;在O365的Exchange 管理中心里进行设置时…

外汇天眼:如何快速玩转外汇市场?这个技巧你必须知道!

在外汇市场中&#xff0c;决定交易成功与否的关键在于投资者的技能和知识扎不扎实&#xff0c;这对投资者获取利润至关重要。然而对于投资者来说&#xff0c;外汇交易市场又是一个复杂且多变的市场&#xff0c;要在外汇市场中获得成功并不容易&#xff0c;需要深入地了解、不断…

leetcode每日一题复盘(10.23~10.29)

leetcode 450 删除二叉搜索树中的节点 见到二叉搜索树第一时间就应该想起用中序遍历,知道中序遍历之后接下来想如何删除节点了(左右遍历根据节点大小决定向左向右移动) 遍历找不到目标节点,就不用进行操作直接返回根节点就好了 当遍历找到要删除的节点(root)时,根据子树情况…

MES管理系统的生产模块与ERP有何差异

随着信息化技术的不断发展&#xff0c;企业对于生产管理系统的要求也日益提高。MES生产管理系统和ERP系统都是企业生产管理的重要工具&#xff0c;而它们的生产模块存在一些差异。 首先&#xff0c;MES管理系统的生产模块更加注重于生产过程的实时管理和控制。它可以通过数据采…

我试图扯掉这条 SQL 的底裤。只能扯一点点,不能扯多了

之前不是写分页嘛,分页肯定就要说到 limit 关键字嘛。 然后我啪的一下扔了一个链接出来: https://dev.mysql.com/doc/refman/8.0/en/limit-optimization.html 这个链接就是 MySQL 官方文档,这一章节叫做“对 Limit 查询的优化”,针对 limit 和 order by 组合的场景进行了较…

如何提高广告投放转化率?Share Creators 资产库与Appsflyer营销数据的全面结合

如何提高广告投放转化率&#xff1f;Share Creators 资产库与Appsflyer营销数据的全面结合 全球经济进入了低迷期。 营销成本越来越高&#xff0c; 营销需要更务实&#xff0c;注重投入产出比。众所周知&#xff0c;除了渠道、客群画像以外&#xff0c; 优秀的广告设计图&#…

Cesium冷知识:Sandcastle新增示例组

Cesium.js的SandCastle中有很多示例 他们根据不同类型分为不同的组 在cesium.js的源码中&#xff0c;把示例的 <meta content"自己定义新的组名">值改为自定义的组名 然后执行npm run build&#xff0c;就可以创建出一个新的组 这种方法在下面这些Cesium.js版…

c语言进阶部分详解(详细解析自定义类型——结构体,内存对齐,位段)

上篇文章介绍了一些常用的字符串函数&#xff0c;大家可以去我的主页进行浏览。 各种源码大家可以去我的github主页进行查找&#xff1a;Nerosts/just-a-try: 学习c语言的过程、真 (github.com) 今天要介绍的是&#xff1a;结构体的相关内容 目录 一.结构体类型的声明 1.…

Jmeter之处理session、cookie以及如何做关联

session和cookie的概念 按照我的理解就是&#xff1a; cookie保持你访问的权限信息。 session限制你访问权限信息的有效时间&#xff0c;一旦过期就不能在访问了&#xff0c;比如说我们经常遇到了&#xff0c;很长一段时间网页没有去操作&#xff0c;就会自动退出登陆。你要…

ZooKeeper下载、安装、配置和使用

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

node-red常用包分析

node-red-contrib-opcua Use OpcUa-Item to define variables. Use OpcUa-Client to read / write / subscribe / browse OPC UA server. 需要想通过OpcUa-Item节点来指定一个数据点。 触发器-->opcua_item----->opcua_client opcua_client的Action项解析&#xff1a; …

LVS负载均衡集群+NAT部署

集群的概念和目的 集群的定义 Cluster&#xff0c;集群&#xff08;也称群集&#xff09;由多台主机构成&#xff0c;但对外只表现为一一个整体&#xff0c;只提供一-个访问入口(域名或IP地址)&#xff0c; 相当于一台大型计算机。 集群的作用 对于企业服务的的性能提升一般…

感觉真的要被淘汰了,工作3年,不懂自动化,看着公司的新员工都是自动化岗....

这两天和朋友谈到软件测试的发展&#xff1a;这一行的变化确实蛮大&#xff0c;从开始最基础的功能测试&#xff0c;到现在自动化、性能、安全乃至于以后可能出现的大数据测试、AI测试岗位需求逐渐增多。我也在软件测试这行摸爬滚打了十年了&#xff0c;正好有朋友问我&#xf…

最全面的msvcp140_atomic_wait.dll丢失的解决方法,教你怎么快速修复dll文件

在众多电脑使用者中&#xff0c;碰到过"msvcp140_atomic_wait.dll文件丢失"这样的问题的人并不鲜见。突如其来的错误提示常让人感到困扰&#xff0c;但无需过于焦虑&#xff0c;因为这类问题多数都有成熟的解决方案。在这篇文章中&#xff0c;我们将深入探讨如何针对…