当前位置: 首页 > news >正文

MySQL | 查询接口性能调优、编码方式不一致导致索引失效

背景

最近业务反馈,列表查询速度过慢,需要优化。
到正式环境系统去验证,发现没筛选任何条件的情况下,查询需要三十多秒,而筛选了条件之后需要13秒。急需优化。

先说结论:连表用的字段编码方式不一致导致索引不可用。

查早原因

1.遇到慢查询,首先需要定位慢的原因,先查到接口,看内部实现先初步猜测慢的原因,然后验证。先本地运行项目,找到相应的查询接口,利用MbBatis Log插件获取到分页查询的SQL,拿到数据库改商户去运行,18秒,好久。
在这里插入图片描述

2.而且,因为项目使用的是jeecgboot项目,分页在分页查询之后会先查询总数,拿查总数的SQL来验证。也是要13秒,太慢啦。
在这里插入图片描述

看看执行计划

在这里插入图片描述
3.从SQL来看,u表有用到主键id来做关联,照理说索引应该用主键才对,但执行计划显示并没有使用主键。尝试把u表相关的关联表去掉看看是不是这个表的原因。
在这里插入图片描述
4.速度大幅度提高,说明问题确实出现在u表相关的几个表。去看看u表的结构。索引是存在的,但却并没有用到,很奇怪。再看看编码方式。
在这里插入图片描述

5.再对比一下关联的hr表的sys_user_id字段
在这里插入图片描述
6.两个字段的编码方式不一样,尝试把u表的编码方式改成和hr表一致。再运行SQL。
在这里插入图片描述
7.速度提升不明显,再看看执行计划。
在这里插入图片描述
8.ud表好像也有点问题,索引类型不太正常,看了一下表结构,发现也是编码问题,顺便也改了(d表也有一样问题,也改了)。
在这里插入图片描述

9.看看分页查询的速度
在这里插入图片描述
10.这个速度还可以,再看看执行计划。索引的类型现在要么是eq_ref,要么是ref,并且能用主键的基本也是用主键,符合预期了。
在这里插入图片描述

修改前后执行计划对比


在这里插入图片描述

在这里插入图片描述

11.最后去系统体验,查询速度大概是3.6秒,相比一开始的30多秒,速度提升了七八倍。

分析

本来u表的数据量并不大,但其他表连接之后,数据量已经非常大了,u表的速度稍微慢一点都会很明显。而u表几乎是全表扫描,也就出现了整个接口速度很慢的场景。

想要继续调优,目前的打算是把一部分主查询没有用来筛选的字段拆分开,在外层先查出来再在主SQL里面用in查询。

相关文章:

MySQL | 查询接口性能调优、编码方式不一致导致索引失效

背景 最近业务反馈,列表查询速度过慢,需要优化。 到正式环境系统去验证,发现没筛选任何条件的情况下,查询需要三十多秒,而筛选了条件之后需要13秒。急需优化。 先说结论:连表用的字段编码方式不一致导致索…...

ASUS华硕灵耀X2 Duo UX481FA(FL,FZ)_UX4000F工厂模式原装出厂Windows10系统

下载链接:https://pan.baidu.com/s/1sRHKBOyc3zu1v0qw4dSASA?pwd7nb0 提取码:7nb0 带有ASUS RECOVERY恢复功能、自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、MyASUS华硕电脑管家等预装程序所需要工具:16G或以上…...

企业安全—三保一评

0x00 前言 本篇主要是讲解三保一评的基础知识,以及对为什么要进行这些内容的原因进行总结。 0x01 整体 1.概述 三保分别是,分保,等保,关保。 分保就是指涉密信息系统的建设使用单位根据分级保护管理办法和有关标准&#xff0c…...

“深入理解机器学习性能评估指标:TP、TN、FP、FN、精确率、召回率、准确率、F1-score和mAP”

目录 引言 分类标准 示例:癌症检测 1. 精确率(Precision) 2. 召回率(Recall) 3. 准确率(Accuracy) 4. F1-score 5. mAP(均值平均精度) 总结与通俗解释 引言 机器…...

Linux软件包(源码包和二进制包)

Linux下的软件包众多,且几乎都是经 GPL 授权、免费开源(无偿公开源代码)的。这意味着如果你具备修改软件源代码的能力,只要你愿意,可以随意修改。 GPL,全称 General Public License,中文名称“通…...

Leetcode-394 字符串解码(不会,复习)

此题不会!!!!!!!!!!!! 题解思路:元组思想:数字[字符串],每次遇到中括号意味着要重复数字次字符串…...

如何在Linux上搭建本地Docker Registry并实现远程连接

Linux 本地 Docker Registry本地镜像仓库远程连接 文章目录 Linux 本地 Docker Registry本地镜像仓库远程连接1. 部署Docker Registry2. 本地测试推送镜像3. Linux 安装cpolar4. 配置Docker Registry公网访问地址5. 公网远程推送Docker Registry6. 固定Docker Registry公网地址…...

assets_common.min.js

assets_common.min.js odoo将零散的js文件主要打包成了两个文件,分别是web.assets_common.min.js 和web.assets_backend.min.js, 我们分别看看这两个文件里都有些啥? common.js最先加载,看看里面都有些啥 1、boot.js 定义了od…...

前端工程化(vue2)

一、环境准备 1.依赖环境:NodeJS 官网:Node.js 2.脚手架:Vue-cli 参考网址:安装 | Vue CLI 介绍:Vue-cli用于快速的生成一个Vue的项目模板。主要功能有:统一的目录结构,本地调试&#xff0…...

深度学习(生成式模型)——Classifier Guidance Diffusion

文章目录 前言问题建模条件扩散模型的前向过程条件扩散模型的反向过程条件扩散模型的训练目标 前言 几乎所有的生成式模型,发展到后期都需要引入"控制"的概念,可控制的生成式模型才能更好应用于实际场景。本文将总结《Diffusion Models Beat …...

Hadoop架构、Hive相关知识点及Hive执行流程

Hadoop架构 Hadoop由三大部分组成:HDFS、MapReduce、yarn HDFS:负责数据的存储 其中包括: namenode:主节点,用来分配任务给从节点 secondarynamenode:副节点,辅助主节点 datanode:从节点&#x…...

P1529 [USACO2.4] 回家 Bessie Come Home 题解

文章目录 题目描述输入格式输出格式样例样例输入样例输出 提示完整代码 题目描述 现在是晚餐时间,而母牛们在外面分散的牧场中。 Farmer John 按响了电铃,所以她们开始向谷仓走去。 你的工作是要指出哪只母牛会最先到达谷仓(在给出的测试数…...

Python语法基础(条件语句 循环语句 函数 切片及索引)

目录 条件语句关键字与C对照注意 循环语句while 循环语句while else 循环语句for 循环语句range() 函数 for else 循环语句循环控制语句练习:打印乘法表 函数函数定义及调用函数值传递和引用传递多返回值参数类型位置参数默认参数关键字参数可变数量的参数可变数量的…...

Debian 9 Stretch APT问题

Debian 9 Stretch APT问题 flyfish 操作系统 Debian 9 Stretch 错误提示 使用sudo apt update错误提示 Ign:1 http://mirrors.aliyun.com/debian stretch InRelease Ign:2 http://mirrors.aliyun.com/debian-security stretch/updates InRelease Ign:3 http://mirrors.al…...

遍历List集合和Map进行修改和删除报java.util.ConcurrentModificationException错误详解

一、异常产生 当我们使用foreach迭代一个ArrayList或者HashMap时,如果尝试对集合做一些修改操作(例如删除元素或新增),可能会抛出java.util.ConcurrentModificationException的异常。 javapublic static void main(String[] args)…...

Android从一个APP跳转到另外一个APP

1、从当前APP去全新启动另外一个目标APP(非覆盖同一个进程): 启动另外一个目标APP(非覆盖原来APP的方式) 1、当前APP加入获取权限声明:(不加人权限检查,没法启动目标app&#xff0…...

我的创作纪念日——创作者2年

机缘 我最初使用CSDN估计是在2014年左右,当时还在读研,除了在当时比较有名的BBS例如小木虫上进行学术交流外,我发现很多问题百度后,都会转到CSDN,而且文章内容颇为专业,很多问题也都有专业的回答&#xff…...

大数据之LibrA数据库系统告警处理(ALM-12032 ommdba用户或密码即将过期)

告警解释 系统每天零点开始,每8小时检测当前系统中ommdba用户和密码是否过期,如果用户或密码即将在15天内过期,则发送告警。 当系统中ommdba用户过期的期限修改或密码重置,告警恢复。 告警属性 告警ID 告警级别 可自动清除 …...

C_3练习题

一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。) 1.下列叙述中正确的是()。 A.用C程序实现的算法必须要有输入和输出操作 B.用C程序实现的…...

CentOS7 安装Jenkins 2.414.3 详细教程

目录 1、前提条件硬件软件-java11安装 2、安装jenkins3、启动jenkins配置用户和用户组配置JAVA_HOME 4、配置Jenkins一直处于启动状态5、测试Jenkins是否可以访问以及配置6、访问Jenkins系统 1、前提条件 硬件 内存 4G ; 硬盘 20G 软件-java11安装 上传文件jdk-11.0.21_lin…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

深度学习习题2

1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释

以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块&#xff0…...

《Docker》架构

文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器,docker,镜像,k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...

篇章二 论坛系统——系统设计

目录 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 1. 数据库设计 1.1 数据库名: forum db 1.2 表的设计 1.3 编写SQL 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 通过需求分析获得概念类并结合业务实现过程中的技术需要&#x…...

【Ftrace 专栏】Ftrace 参考博文

ftrace、perf、bcc、bpftrace、ply、simple_perf的使用Ftrace 基本用法Linux 利用 ftrace 分析内核调用如何利用ftrace精确跟踪特定进程调度信息使用 ftrace 进行追踪延迟Linux-培训笔记-ftracehttps://www.kernel.org/doc/html/v4.18/trace/events.htmlhttps://blog.csdn.net/…...

使用ch340继电器完成随机断电测试

前言 如图所示是市面上常见的OTA压测继电器,通过ch340串口模块完成对继电器的分路控制,这里我编写了一个脚本方便对4路继电器的控制,可以设置开启时间,关闭时间,复位等功能 软件界面 在设备管理器查看串口号后&…...

【Java基础】​​向上转型(Upcasting)和向下转型(Downcasting)

在面向对象编程中,转型(Casting) 是指改变对象的引用类型,主要涉及 继承关系 和 多态。 向上转型(Upcasting) ⬆️ 定义 将 子类对象 赋值给 父类引用(自动完成,无需强制转换&…...