MySQL之短时间提高性能的措施

news2024/11/20 11:41:02

文章目录

    • 前言
    • 短连接风暴
    • 慢查询
    • QPS(每秒查询数)突增
    • 总结

前言

我们在使用数据库的时候,总会有那么一段时间,数据库的压力会特别大。比如,用户的使用的高峰期,或者活动上线的时候等等。那么为了应对突然暴增的数据库压力,我们应该怎么应对呢。首先我们需要分析下导致压力暴增的原因,然后制定相应的措施即可。

短连接风暴

短连接的数量在某一时刻突然暴增,这会给数据库造成很大的压力。当遇到这种情况的时候,我们大致有三种种处理方法

1.关闭数据的权限校验这一块,直接连接数据库。虽然说权限校验这一块,对性能很小,但是当连接数很大的时候,也是一笔不小的性能开销。但是这个操作非常危险,不建议使用。

2.杀死短连接。通过kill connection 主动踢掉一些空闲的短连接。
在这里插入图片描述
如上图,如果sessionA和sessionB都是sleep状态的空闲连接,我们首先选择肯定是杀死sessionB这种的,因为杀死B这种的短连接不需要事务的回滚。A的话,你杀死这样的连接之后,还需事务回滚,将数据还原。
怎么判断那个是事务外空闲的连接呢。你可以查 information_schema 库的 innodb_trx 表来进行判断。
如果杀死事务外空闲的短连接还不够,那么你就可以考虑杀死事务内空闲的连接。

3.就是调高 max_connections 的值,我们知道数据库的连接数,是由一定数量的,我们可以通过max_connections 参数设置。但是这个也有一个风险就是你设置的过大的话,可能会导致连接上了,但是这个连接迟迟拿不到cpu的资源,倒是进一步加大服务器资源的占用。

慢查询

导致慢查询大致有三种情况
1.索引没选对
2.sql写的有问题
3.索引失效了
对此我们有以下三种对应的解决方法

(1)索引失效,我们可以通过alter table ,添加索引解决,现在的是数据库版本基本都支持online ddl,只要不是特别老的版本。
(2)sql写的有问题的话

insert into query_rewrite.rewrite_rules(pattern, replacement, pattern_database) values ("select * from t where id + 1 = ?", "select * from t where id = ? - 1", "db1");call query_rewrite.flush_rewrite_rules();

我们可以通过重写sql,如上图,写一个存储过程,里面写一个你要替换的sql,然后在执行慢查询的sql 的时候,可以执行上面的sql将慢查询的sql替换成你重写的sql。

(3) 索引失效
这个我们这不详细展开介绍了,之前的文章有详细的介绍索引失效的场景,原因和解决方案。这里我们就直接使用for index这种最为直接的解决方案。

QPS(每秒查询数)突增

QPS突然暴增的情况,基本优化方案没有,没有什么短时间应急的优化方案(这个建议前提是在你的表设计的没有问题,索引也没有问题的情况下)。当然你也可以选择上面那种重写sql,统一返回select1,但是这个功能基本就无法使用了。
但是如果你是新增的业务,且这个业务不是那么重要的话,你可以选择,将这个业务从数据库白名单踢出,或者删除这个业务的用户,这样也可以。

总结

上面介绍的方法基本都是一些应急的方案,不是长远考虑的(就是你领导说,我不管你用什么方法先让程序能正常运行,我们采用的一些应急方案),所以你们想要彻底解决问题,还的深入研究,找到问题所在。

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

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

相关文章

Child Tuning: 反向传播版的Dropout

这篇文章主要是对EMNLP2021上的论文Raise a Child in Large Language Model: Towards Effective and Generalizable Fine-tuning进行讲解。论文标题有些抽象,但是用作者的话来说,这篇论文的思想可以归结为两个词:Child Tuning 虽然这篇文章主…

0-1背包问题

在将什么是0-1背包问题前,先来看下面一道例题: 题意概要:有 n 个物品和一个容量为 W 的背包,每个物品有重量w i和价值v i两种属性,要求 选若干物品放入背包使背包中物品的总价值最大且背包中物品的总重量不超过背包的容…

京东一小伙一年输出20篇专利,其实你也可以

前言: ☆ 本文属于技术总结类干货分享,是实战但又不同于实战,所以不能保证每位同学读后都可以立马自己也输出一篇合格的专利; ☆ 但通过本文的总结分享,已经帮身边同学半年内输出大于100篇专利,所以如果你细…

【字母识别】基于matlab BP神经网络英文字母识别【含Matlab源码 2226期】

⛄一、BP神经网络英文字母识别 1 典型前向网络——BP神经网络 前向网络是目前研究最多的网络形式之一, 它包含输入层、隐层以及输出层, 其中隐层可以为一层或者多层 , 其结构如图1所示. 图1 BP神经网络模型 BP神经网络误差反向传播学习算法的基本思想如下:向网络提供训练例子…

智慧公路筑基者!天翼云打造全栈能力新底座

11月9日-11日,在第十七届中国智能交通年会(ITSAC 2022)暨2022中国智能交通大会上,中国电信作为本届大会特别支持单位,于11月10日成功举办了主题为“构建智慧公路全栈能力新底座”的运营商赋能智慧交通创新论坛。 交通运…

windows 安装ElasticSearch(es)可视化工具

因项目需要,小编这里使用的是 npm版本 6.14.16 nodejs版本14.19.1 1、下载nodejs地址:https://nodejs.org/download/release/v14.19.1/ 版本需要可根据自己电脑进行选择 2、下载可视化项目包 下载地址:https://github.com/mobz/elasticse…

2020年聚合支付评级结果及如何开展评级工作经验分享

一年一度的收单外包服务机构评级工作即将启动,笔者认为479家聚合支付机构也在关心本机构要不要进行评级并希望了解聚合支付评级要求、评级对机构有何意义和影响、目前聚合支付评级情况及如何开展评级工作。为此,基于笔者最近作为两家聚合支付机构常年顾问…

传奇脚本中提到的WIL序号是什么?在哪查看WIL序号?

传奇M2引擎设置WIL序号方便脚本<IMG:12:2>代码调用,在NPC对话界面显示图片信息。 传奇补丁文件WIL序号设置方法&#xff1a; 传奇M2-查看-列表信息二 很多脚本命令和功能都会使用这个WIL序号。 WIL序号的计算是从0开始的,例如下图中从0开始数 MonEffect.wzl的WIL文件序号…

专肽生物:蛋白激酶C底物 Protein Kinase C Substrate

蛋白激酶 C (PKC) 底物。编号: 161721 中文名称: 蛋白激酶C底物 Protein Kinase C Substrate CAS号: 105802-82-2 单字母: H2N-VRKRTLRRL-OH 三字母: H2N-Val-Arg-Lys-Arg-Thr-Leu-Arg-Arg-Leu-COOH 氨基酸个数: 9 分子式: C51H100N22O11 平均分子量: 1197.48 精确分子量: 1196…

北科天绘 16线3维激光雷达开发教程

文章目录前言一、配置IP地址二、ROS Driver1.创建工作空间并初始化2.启动雷达驱动程序三、 RVIZ 显示 R-Fans 点云数据前言 本教程使用的是三维激光雷达为北科天绘的R-Fans-16,采用网口连接传输数据&#xff0c;9-36V供电。 Ubuntu版本为20.04&#xff0c;Ros版本为Neotic。 !…

【长难句分析精讲】定语从句

1. 定语从句知识总结 1.基本概念&#xff1a; 先行词、关系词、不完整的句子2.先行词的形式&#xff1a; 名词、代词、名词短语、句子3.关系词的秘密 关系代词&#xff1a; 在从句中充当主(who, which, that, whom)、宾(which, that)、定语(whose)&#xff09;关系副词 &#…

送别金铁霖,被谷传民起诉,农民歌唱家大衣哥人品高下立判

最近一段时间&#xff0c;因为被著名作家兼编剧谷传民告上法庭&#xff0c;农民歌唱家大衣哥一夜之间人设崩塌。有人说大衣哥不讲武德&#xff0c;无偿使用别人的音乐&#xff0c;赚钱后又不支付版权费&#xff0c;农民歌唱家的人品真不咋样。 面对互联网铺天盖地的流言蜚语&am…

高斯判别分析(GDA)公式推导

解&#xff1a;将概率分布代入对数似然函数&#xff0c; l(ψ,μ0,μ1,∑)∑i1mlogpX∣Y(x(i)∣y(i);μ0,μ1,∑)∑i1mlogpY(y(i);ψ)l(\psi,\mu_0,\mu_1,\sum)\sum^m_{i1}{log{p_{X|Y}(x^{(i)}|y^{(i)};\mu_0,\mu_1,\sum)}}\sum^m_{i1}log{p_Y}(y^{(i)};\psi)l(ψ,μ0​,μ1​…

mbedtls 自带SSL demo调试

概述&#xff1a; 运行mbedtls自带 ssl demo的记录&#xff1b; 操作过程&#xff1a; 编译Demo&#xff0c;请看我专栏中的相关文章 先运行服务端程序&#xff0c;运行ssl_server.exe&#xff0c;运行结果如下&#xff1a; mbedtls-3.2.1\mbedtls-3.2.1\programs\ssl> .…

通用后台管理系统前端界面

1、项目搭建 局部安装vue-cli 4.5.15 和创建项目 1.1 局部安装vue-cli 工具&#xff0c;方便不同版本进行切换 ###安装指定版本的vue脚手架工具 或者是已安装了&#xff0c;该命令则为使用4.5.15版本的vue/cli npm i -D vue/cli4.5.15 ###查看当前vue脚手架工具版本…

第七节.常用Linux命令—查找文件,软硬链接,软件安装,系统信息

第七节.常用Linux命令—查找文件&#xff0c;软硬链接&#xff0c;软件安装&#xff0c;系统信息 1.查找文件&#xff1a; 序号命令作用01find [路径] -name “.py”查找指定路径下扩展名是.py的文件&#xff0c;包括子目录 功能&#xff1a;通常用来在特定目录下搜索符合条件…

SpringMVC之全局异常管理

在开发过程中一个项目可以要抛出很多很多的异常&#xff0c;这对于用户来说非常地不方便&#xff0c;而且非常地不安全&#xff0c;特别容易导致用户信息地泄露。在SpringMVC中有一种全局异常管理方法&#xff0c;这种方法收集项目中存在所有地异常&#xff0c;以保证项目正常地…

windows 定制 terminal 上手实践

文章目录1. 前言2. 安装 Windows Terminal3. 安装 nerd-fonts4. Microsoft store 安装 powershell5. 改变终端背景颜色6. 安装 scoop7. 安装 git8. 安装 Neovim9. 设置别名10. 安装 oh My Posh11. 自定义 prompt&#xff08;path&#xff09;12. 安装 nodejs13. 安装 Terminal …

数据库高级 I

数据库高级 I 双向链表 什么是双向链表 双向链表是一种数据结构,由若干个节点构成,其中每个节点均由三部分构成,分别是前驱节点,元素,后继节点.双向链表中的节点在内存中是游离状态存在的.双向链表的应用:LinkedList 双向链表中的元素部分保存的都是对象,实际上保存的是元素对…

Tomcat 源码解析一请求处理的整体过程-黄泉天怒(下)

上一篇博客 Tomcat 源码解析一请求处理的整体过程-黄泉天怒(上) NonLoginAuthenticator NonLoginAuthenticator并没有实现invoke()方法&#xff0c;而是由父类AuthenticatorBase实现了invoke()方法&#xff0c;AuthenticatorBase类关系如下。   先弄清楚NonLoginAuthentica…