SQL性能下降的原因

一、SQL性能下降的原因

主要是性能下降SQL慢、执行时间长、等待时间长

不是一条SQL抓出来就要优化,在真实的生产环境下这种故障第一个要去复线,有可能去排查的时候没,所以没法复线。

可能需要它跑半天或者一天来缩小筛查的范围,不是故障一发生就能获得这条SQL,而且到底是不是真的情况到底是不是SQL写的慢,也可以是磁盘的空间满,这些情况也会导致SQL慢。

1.查询语句写的烂

Select语句写的烂,各种链接各种子查询导致用不上索引或者没见索引。所以需要看索引后期优化的内容。

2.索引失效

索引失效的前提是见没用上,而没有索引是根本没见过。

索引分为单值索引和复合索引。

假如说有 id、name、email、weixinNumber

假如说 select * form user where name=’;

假设这个表是千万的记录,假设重名的也很少,要想按照这个name查的快就要在上边做一个索引。

单值索引:

select * from user where name=‘’;

create index idx_user_name on user(name)//id_建索引在user表的name字段上,没建索引的时候是杂乱无章的,现在是进行了排序所以查询的时候速度可以更快。

单值索引是只给这个表的某一个字段建一个索引

复合索引:

频繁使用的是字段要建立索引,并且同时可能使用两到三个字段

select * from user where name=‘’ and email='’;

create index idx_user_name on user(name)

Create index idx_user_nameemail on user(name,email)

3.查询关联太多join(设计缺陷或不得已的需求)

join太多不好就像Java的类一样继承层次太多也不好,但是有些时候是因为设计缺陷或不得已的需求。关联查询太多的join也会导致慢查询时间长。

4.服务器调优及各种参数设置(缓冲、线程数等)

如果这些设置不合理比例不恰当,也会导致查询时间长等待时间长。

二、总结

包含但不限于这四个还会有其它的主要是前三个是跟Java工程师相关的,着重的如何写好SQL,如何建好索引且导致索引不失效就是重点解决的任务。

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

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

相关文章

ThingsBoard本地windows环境启动

提示:以下内容只是本人自己在环境运行情况,不同环境或许会有区别请注意甄别 本地部署 前言简介正文实现总结 前言 前置环境的配置,首先电脑需要配置了git、maven、JDK17 本人使用的maven版本号为3.8.4 软件版本号git2.42.0maven3.8.4jdk17n…

three-tile开发: 5. 取得地图的地面信息

three-tile 是一个开源的轻量级三维瓦片库,它基于threejs使用typescript开发,提供一个三维地形模型,能轻松给你的应用增加三维瓦片地图。 项目地址:GitHub - sxguojf/three-tile: 3D tile map using threejs 示例地址:…

JVM:自动垃圾回收

文章目录 一、C/C的内存管理二、Java的内存管理1、方法去的回收2、堆回收(1)引用计数法和可达性分析法(2)五种对象引用(3)垃圾回收算法(4)垃圾回收器 一、C/C的内存管理 在C和C没有…

uni-app 蓝牙传输

https://www.cnblogs.com/ckfuture/p/16450418.html https://www.cnblogs.com/yangxiaobai123/p/16021058.html 字符串转base64:https://www.cnblogs.com/sunny3158/p/17312158.html 将 ArrayBuffer 对象转成 Base64 字符串:基础 - uni.arrayBufferT…

IT运维也有自己的节日 724向日葵IT运维节,三大版本如何选?

“724运维节”,是2016年由开放运维联盟发起倡议,广大运维人员共同投票产生的属于运维人自己的节日。 对于运维人最大的印象,那就是工作都需要7x24小时待命,是名副其实的“日不落骑士”,这也是大家选择724这一天作为运…

原理图大结局

一、总结哪些地方是5V供电?哪些地方是4V供电?哪些地方是3.3V供电?为什么会这样?根据什么原则来划分供电区域? 二、 5V 供电为什么有的地方要100uF+ 0.1uF 滤波?有的地方只要 10uF 滤波&#xff…

RabbitMQ - 延迟消息 - 死信交换机

目录 1、怎么理解延迟消息? 2、如何实现延迟消息? 2.1、方案一:死信交换机 2.1.1、什么是死信: 2.1.2、什么是死信交换机? 2.2、方案二:延迟消息插件 2.2.1、插件安装: 2.2.2、代码实现 …

AndroidStudio2023.3版本avd manager模拟器无法创建

创建到最后一步的时候提示WARN - #com.android.sdklib.internal.avd.AvdManager - com.android.prefs.AndroidLocationsException: Can’t locate Android SDK installation directory for the AVD .ini file. 前提: 1.sdk路径没问题 2.安装了下图内容 那是什么原因…

提高项目透明度:有效的跟踪软件

国内外主流的10款项目进度跟踪软件对比:PingCode、Worktile、Teambition、Tower、Asana、Trello、Jira、ClickUp、Notion、Liquid Planner。 在项目管理中,确保进度跟踪的准确性与效率是每位项目经理面临的主要挑战之一。选用合适的项目进度跟踪软件不仅…

VUE2用elementUI实现父组件中校验子组件中的表单

需求是VUE2框架用elementUI写复杂表单组件,比如,3个相同功能的表单共用一个提交按钮,把相同功能的表单写成一个子组件,另一个父组件包含子组件的重复调用和一个提交按钮,并且要求提交时校验必填项。 注意: …

【Python进阶】正则表达式、pymysql模块

目录 一、正则表达式的概述 1、基本介绍 2、快速使用re模块 二、正则的常见规则 1、匹配单个字符 2、原始字符串 3、匹配多个字符 4、匹配开头和结尾 5、匹配分组 三、Python与MySQL交互 1、pymysql模块的安装 2、pymysql的操作步骤 3、connection对象 4、cursor…

记录一点mybatis的坑

1. mybatis的分页插件 startPage执行后,紧跟的一个查询语句 会被加上limit对应的参数,然后自动执行clearPage(),以免其他语句受到 分页的影响。 但是如果我们没有 执行查询语句,那么,这个分页可…

可重入锁深入学习(有码)

【摘要】 ​今天,梳理下java中的常用锁,但在搞清楚这些锁之前,先理解下 “临界区”。临界区在同步的程序设计中,临界区段活称为关键区块,指的是一个访问共享资源(例如:共享设备或是共享存储器&a…

数据湖仓一体(二) 安装kafka

上传安装包到/opt/software目录并解压 [bigdatanode106 software]$ tar -zxvf kafka_2.12-3.5.2.tgz -C /opt/services/ 重命名kafka [bigdatanode106 software]$ mv kafka_2.12-3.5.2 kafka_3.5.2 配置环境变量 [bigdatanode106 ~]$ sudo vim /etc/profile.d/bigdata_…

深度学习调参

此文整理总结github上的一个资料,结尾附上链接。对于工程应用很有现实参考,带入实际工作场景中会有不少的收获。 这份文档旨在帮助工程师和研究人员系统性地优化深度学习模型的性能。它涵盖了从项目启动到模型部署的各个环节,包括&#xff1a…

6、evil box one

低—>中 目标:获取root权限以及2个flag 主机发现 靶机 192.168.1100.40 或者使用fping -gaq 192.168.100.1/24发现主机使用ping的方式。 端口扫描 发现开放了22和80 可以使用-A参数,-A参数会得到更多的扫描细节 访问80端口就是一个apache的基本的…

基于Python/MATLAB长时间序列遥感数据处理及在全球变化、植被物候提取、植被变绿与生态系统固碳分析、生物量估算与趋势分析应用

植被是陆地生态系统中最重要的组分之一,也是对气候变化最敏感的组分,其在全球变化过程中起着重要作用,能够指示自然环境中的大气、水、土壤等成分的变化,其年际和季节性变化可以作为地球气候变化的重要指标。此外,由于…

怎么安装Manim库在Windows环境下的Jupyter Notebook上

Manim 是解释性数学视频的动画引擎。 您可以使用它来制作数学视频(或其他字段)。也许你们会在有有些平台上会看过特别好看的数学动画,例如 3Blue1Brown等。这些动画特别好看,还特别丝滑,基本找不到太大的毛病。 我当初…

在 WebSocket 连接建立之前进行身份验证

要在 WebSocket 连接建立之前进行身份验证,可以采用以下常见方法: 基于 token 的鉴权:客户端在连接请求中携带 token,服务器端接收后验证 token 的合法性。例如,使用 ws 库时,可以在建立 WebSocket 连接时设置请求头: const socket = new WebSocket(ws://localhost:…

推荐 2 个 硬核的 AI 开源项目

01 AI 助手在你的终端中配对编程 Aider 由 Paul Gauthier 精心打造的开源AI配对编程工具,已经在GitHub上赢得了超过 12.8k 颗星星,人气爆棚! 这不仅仅是个工具,它是你在终端中的 AI 编程伙伴,帮你编辑存储在本地 Git 仓…