Mysql第三篇---响应太慢?数据库卡顿?如何优化?
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这里,如下图:


相关文章:
Mysql第三篇---响应太慢?数据库卡顿?如何优化?
Mysql第三篇—响应太慢?数据库卡顿?如何优化? 统计SQL的查询成本:last_query_cost 一条SQL查询语句在执行前需要确定查询执行计划,如果存在多种执行计划的话,MySQL会计算每个执行计划所需要的成本&#x…...
【计算机网络】HTTP 协议的基本格式以及 fiddler 的用法
HTTP协议的基本格式如下: 1.请求行: 包括请求THHP协议的版本、请求URI(资源路径)和HTTP方法(如GET、POST、PUT、DELETE等) GET/example.html HTTP/1.1 GET表示请求方法,/example.html表示请求的…...
人大金仓与哪吒科技达成战略合作,加快推动智慧港口建设
近日,人大金仓与哪吒港航智慧科技(上海)有限公司(以下简称“哪吒科技”)达成战略合作。双方旨在共享优势资源,联合为港口企业转型升级提供完备的技术支撑与行业解决方案。人大金仓总裁杜胜、哪吒科技总经理…...
FFmpeg工具使用集
FFmpeg工具使用集 About FFmpeg Java调用FFmpeg FFmpeg 工具: FFMPEG 用于转换多媒体文件的 命令行工具 格式之间( ffmpeg\bin\ffmpeg.exe ) ffplay 基于 SDL 和 FFmpeg 库的简单媒体播放器 ( ffmpeg\bin\ffplay.exe ࿰…...
2024级199管理类联考之英语二2200核心词汇(第一天)
define 下定义,定范围definition 定义,清晰度identify 鉴定,识别,确认identifiable 可识别的,可辨认的identity 身份,一致determine 决心,确定determinism 宿命论,决定论judge 判断,法官/裁判behavior 举止,表现behavioral 行为的conduct v-实施,引导,指挥; n-实施方式,行为,举…...
webGL编程指南 第三章 平移三角形 TranslatedTriangle.js
我会持续更新关于wegl的编程指南中的代码。 当前的代码不会使用书中的缩写,每一步都是会展开写。希望能给后来学习的一些帮助 git代码地址 接着 上一节 接着做平移的转化。在本次的案例案例中主要是xy的坐标变量相加,同时传递个给相关变量 <!DOCTY…...
推荐一款支持异步批量下载图片的chrome插件——图片助手(ImageAssistant) 批量图片下载器
https://chrome.google.com/webstore/detail/imageassistant-batch-imag/dbjbempljhcmhlfpfacalomonjpalpko/related?hlzh-CNhttps://chrome.google.com/webstore/detail/imageassistant-batch-imag/dbjbempljhcmhlfpfacalomonjpalpko/related?hlzh-CN 安装后直接点击 会根据…...
vue 动态数字效果 vue-animate-number
安装 vue-animate-number 插件 npm install vue-animate-number (注:是npm、cnpm还是yarn根据具体项目要求) 在 main.js 中引入 import Vue from vue import VueAnimateNumber from vue-animate-number Vue.use(VueAnimateNumber)动态使用…...
10月22日,每日信息差
今天是2023年10月22日,以下是为您准备的13条信息差 第一、库迪咖啡计划到2025年底全球门店数量达2万家,库迪咖啡开业一周年全球门店数量达到6061家,位居全球第四 第二、超高速纯硅调制器取得创纪录突破,国际上首次把纯硅调制器带…...
Android系统之SurfaceFlinger
参考资料: Android 显示系统:SurfaceFlinger详解 Android 渲染机制——SurfaceFlinger 一篇文章看明白 Android 图形系统 Surface 与 SurfaceFlinger 之间的关系 Android卡顿原理分析和SurfaceFlinger,Surface概念简述 Android Graphics…...
jQuery实现输入框提示并点击回显功能呢
html代码: <input type"text" id"affOrganization" name"affOrganization" class"form-control" placeholder"Search..." style"width: 300px" > <div class"search_suggest" id"gov_se…...
终端常用操作
终端操作 取消 可以用ctrl c,不要一个一个删除,会取消掉开新的一行回溯上一次的命令,ctrl r,然后键入关键词,直接回车运行就行 chmod x 文件名 给某个文件运行需要的权限。...
JWFD开源工作流矩阵引擎测试版本BUG20231022修正代码
public void ParamFileOutputValue(String paramfile) {String s "";String sp "";String ssp "";List<String> list new ArrayList<String>();int p 0;int k 0;//这个地方要修改为整个参数表的最大行数,而不是起始…...
分拣设备运动仿真
这一次我们来分享一下如何在Solidworks 中做出传送台的分拣动作并通过分拣动作生成过程动画,以便于我们可以用于产品展示又或者验证运行程序无误的情况下结构是否会影响输送效率。 首先创建一个新的运动算例 将窗口切换至Motion分析 在设置之前我们先理清设置传送带…...
Python【列表的反转与排序】
目录 要求:列表的反转 列表的排序 列表的反转: 方案一:使用reverse()方法:它会直接修改原始列表,进行反转。 方案二:还是使用reversed()函数:该函数返回一个反转后的迭代器对象,…...
2 用TensorFlow构建一个简单的神经网络
上一篇:1 如何入门TensorFlow-CSDN博客 1、环境搭建 后续介绍的相关代码都是在pycharm运行,pycharm安装略。 打开pycharm,创建一个新的项目用于tensorflow编码练习,在Terminal输入命令: # 依赖最新版本的pip pip i…...
快手视频批量下载.py(10月可以用)
完整代码如下: # _*_ coding:utf-8 _*_# _*_ coding:utf-8 _*_import json import requests import time import randomheaders = """Accept: */* Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6 Con…...
如何用工业树莓派和MQTT平台打通OT和IT?
一、应用设备 OT端设备:步进电机,MODBUS TCP远程I/O模块,PLC设备 边缘侧设备:宏集工业树莓派; IT端设备:PC、安卓手机; IT端软件:宏集HiveMQ MQTT通信平台 二、原理 宏集工业树…...
大模型背景下软件工程的机遇与挑战
点击链接了解详情 本文作者:汪晟杰 导语:AISE(AI Software Engineering)有人说是软件工程 3.0,即基于大模型(LLM - Large Language Model)时代下的软件工程。那么究竟什么是 AISE,他的发展历程对…...
flink中使用GenericWriteAheadSink的优缺点
背景 GenericWriteAheadSink是flink中提供的实现几乎精确一次输出的数据汇抽象类,本文就来看一下使用GenericWriteAheadSink的优缺点 GenericWriteAheadSink的优缺点 先看一下GenericWriteAheadSink的原理图 优点: 几乎可以精确一次的输出…...
QLVideo多语言本地化:从零到全球的开发者协作实践
QLVideo多语言本地化:从零到全球的开发者协作实践 【免费下载链接】QuickLookVideo This package allows macOS Finder to display thumbnails, static QuickLook previews, cover art and metadata for most types of video files. 项目地址: https://gitcode.co…...
MATLAB高阶谱分析工具箱全指南:cum3x/cum4x函数参数详解与避坑技巧
MATLAB高阶谱分析工具箱实战指南:从参数解析到工程避坑 在信号处理领域,高阶统计量分析正逐渐成为非高斯、非线性信号研究的利器。作为MATLAB用户,高阶谱分析工具箱(HOSA)中的cum3x、cum4x等函数为我们打开了这扇大门。但真正掌握这些工具的精…...
3步实现CS:GO皮肤自定义:nSkinz开源工具深度解析
3步实现CS:GO皮肤自定义:nSkinz开源工具深度解析 【免费下载链接】nSkinz Skin changer for CS:GO 项目地址: https://gitcode.com/gh_mirrors/ns/nSkinz 你是否曾经羡慕CS:GO玩家手中那些炫酷的稀有皮肤,却又不想花费数百美元购买?或…...
气温与制冷性能系数的关系
在计算机编程领域,数据处理和分析常常涉及到一些特定领域的应用,比如环境科学中的温度数据分析。在本文中,我们将探讨如何使用R语言处理气温数据,并计算制冷性能系数(Coefficient of Performance, COP)。 数据准备 首先,我们需要准备一组气温数据。我们假设已经有一个…...
Phi-3-mini-4k-instruct-gguf快速上手:Python与Anaconda环境配置全攻略
Phi-3-mini-4k-instruct-gguf快速上手:Python与Anaconda环境配置全攻略 1. 为什么需要环境配置 在开始使用Phi-3-mini模型之前,正确的环境配置是确保一切顺利运行的基础。很多初学者常常因为跳过这一步,导致后续遇到各种奇怪的报错和依赖冲…...
八大网盘终极直链解析:告别限速的完整免费解决方案
八大网盘终极直链解析:告别限速的完整免费解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘…...
C++集成指南:高性能调用LongCat-Image-Edit核心算法
C集成指南:高性能调用LongCat-Image-Edit核心算法 最近在折腾一个图像处理项目,需要把动物图片编辑功能集成到C后端服务里。一开始用Python接口调用LongCat-Image-Edit,效果确实不错,但性能瓶颈很快就出现了——批量处理时速度跟…...
Llama-3.2V-11B-cot 效果惊艳展示:复杂图表理解与数据洞察报告生成
Llama-3.2V-11B-cot 效果惊艳展示:复杂图表理解与数据洞察报告生成 最近在尝试各种多模态模型时,我遇到了一个让我眼前一亮的家伙——Llama-3.2V-11B-cot。这个名字听起来有点复杂,但它的能力却简单直接:它不仅能“看”懂图片&am…...
Ollama部署DeepSeek-R1:解决数学编程问题的智能助手
Ollama部署DeepSeek-R1:解决数学编程问题的智能助手 1. 引言:为什么你需要一个数学和编程助手 如果你经常需要解决数学问题、编写代码或者处理复杂的逻辑推理,可能会遇到这样的困扰:面对一个复杂的方程,需要反复推导…...
wso~.升级到.需要更新的数据表允
1. 架构背景与演进动力 1.1 从单体到碎片化:.NET 的开源征程 在.NET Framework 时代,构建系统主要围绕 Windows 操作系统紧密集成,采用传统的封闭式开发模式。然而,随着.NET Core 的推出,微软开启了彻底的开源与跨平台…...
