记一次mysql索引优化

生产日志告警出现一条慢 sql 告警, 通过 sql 监控平台拿到 这条sql 语句是 :

SELECTid,report_id,report_detail_id,item_code,report_type,photo
FROM**** 表 
WHEREdel_flag = 0 AND (report_type = 1 AND report_detail_id IN ( 1742 ))

之后用 explain 分析这条 sql 的命中索引情况, 发现未命中任何索引, 并且已经是全表扫描了

查看这张表的已经创建的索引情况, 发现该表除了主键id索引之外, 只有 report_id 这一条业务字段的索引

而业务代码有大量的查询逻辑, 需要根据 report_detail_id 这个字段来查询, 所以对 report_detail_id 这个字段添加 单独索引,

注意 : 由于这张表数据量不大, 所以我这里直接写DDL添加该索引

如果表数据量很大的话, 直接添加索引会引起锁表,表数据量越大, 添加索引时间越长, 锁的越久, 报错 Waiting for meta data lock,造成业务崩溃

使用如下语句添加索引:

CREATE INDEX idx_report_detail_id ON *** 表(report_detail_id);

之后查询这张表的索引情况, 发现已经添加了业务字段: report_detail_id 这个索引

再次使用 explain 分析刚才慢 sql 的执行效率, 发现现在只扫描了 2 行记录, 比起之前的 全表扫描, 效率有很大的提升: 

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

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

相关文章

FPGA新起点V1开发板(九)——流水灯

文章目录 一、模块框图二、代码编写三、注意点四、总结 一、模块框图 二、代码编写 endmodule下面需要敲出一个回车代码拼接是大括号 led < {led[2:0],led[3]}注意二进制和十进制 module flow_led(input sys_clk50,input rst_n,output reg [3:0] le…

Java开发分析工具:JProfiler 14 for Mac/win 激活版下载

JProfiler是一款功能强大的Java应用程序性能分析工具&#xff0c;适用于Java开发人员和企业用户&#xff0c;可帮助他们识别和解决Java应用程序中的性能问题&#xff0c;提高应用程序的性能和稳定性。使用JProfiler&#xff0c;开发人员可以实时查看Java应用程序的性能数据&…

项目的各个阶段如何编写标准的Git commit消息

标准提交消息格式 一个标准的提交消息应包括三部分&#xff1a;标题&#xff08;summary&#xff09;、正文&#xff08;description&#xff09;和脚注&#xff08;footer&#xff09;。 1. 标题&#xff08;Summary&#xff09; 简洁明了&#xff0c;不超过50个字符。使用…

Redis数据类型(下篇)

5.Redis有序集合zset(sorted set) 本质就是在set的基础上&#xff0c;每个val值前面加了一个score分数值。 &#xff08;1&#xff09;向有序集合中添加多个&#xff08;或者一个&#xff09;元素和其对应的分数 127.0.0.1:6379> zadd zset1 100 a 90 b 80 c 70 d 60 e (…

【VMware虚拟机中ubuntu系列】—— 在虚拟机中使用本机摄像头的详细教程与常见问题分析及解决

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、虚拟机调用本机摄像头(1) 启动VMware USB 服务(2) 连接本机摄像头(3) 测试摄像头的连接 二、安装usb驱动二、运行usb_cam.launch时出现select timeout的报错…

vulhub中Nexus Repository Manager 3 未授权目录穿越漏洞(CVE-2024-4956)

Nexus Repository Manager 3 是一款软件仓库&#xff0c;可以用来存储和分发Maven、NuGET等软件源仓库。 其3.68.0及之前版本中&#xff0c;存在一处目录穿越漏洞。攻击者可以利用该漏洞读取服务器上任意文件。 环境启动后&#xff0c;访问http://your-ip:8081即可看到Nexus的…

web前端三大典型应用框架

以下是Web前端三大主流框架的作者、使用情况、典型客户。 框架名称 作者/主要开发者 使用情况 典型客户 Angular Google Angular是一个功能强大的前端框架&#xff0c;适用于开发大型和复杂的Web应用。它提供了一套完整的工具和生态系统&#xff0c;使得开发者可以高效地…

Java 虚拟机详解——Java虚拟机、垃圾回收、内存分配策略

文章目录 一、运行时数据区域程序计数器Java 虚拟机栈本地方法栈堆方法区运行时常量池直接内存 二、垃圾收集判断一个对象是否可被回收1. 引用计数算法2. 可达性分析算法3. 方法区的回收4. finalize() 引用类型1. 强引用2. 软引用3. 弱引用4. 虚引用 垃圾收集算法1. 标记 - 清除…

npm发布、更新、删除包

如何将自己开发的依赖包发布到npmjs上供别人使用&#xff1f;五个步骤搞定&#xff01; 实现步骤&#xff1a; 创建自己的工具包项目&#xff0c;进行开发。注册npmjs账号。执行npm login在控制台登录&#xff0c;填写用户信息。执行npm publish发布包。更新及删除。 步骤一…

MongoDB~俩大特点管道聚合和数据压缩(snappy)

场景 在MySQL中&#xff0c;通常会涉及多个表的一些操作&#xff0c;MongoDB也类似&#xff0c;有时需要将多个文档甚至是多个集合汇总到一起计算分析&#xff08;比如求和、取最大值&#xff09;并返回计算后的结果&#xff0c;这个过程被称为 聚合操作 。 根据官方文档介绍&…

c++【提高】简单背包问题

时间限制 : 1 秒 内存限制 : 128 MB 有一个背包能装的重量 maxw (正整数,0≤maxw≤20000),同时有 n 件物品(1≤n≤100),每件物品有一个重量 w_i(正整数)和一个价值 p_i(正整数)。要求从这 n 件物品中任取若干件装入背包内,使背包的物品价值最大。 输入 第 1 行:背包最…

【Python Cookbook】S01E05 一键多值的字典

目录 问题解决方案讨论 问题 如果希望能够将一个键&#xff08;key&#xff09;映射到多个值&#xff08;value&#xff09;上&#xff0c;那么应该如何创建这个字典&#xff1f;&#xff08;即所谓的一键多值字典 [multidict]&#xff09; 解决方案 字典是一种关联容器&…

keepalived监控nginx进程

目录 1、说明 2、上传脚本 3、修改keepalived.conf 3.1 定义监控脚本 3.2 在实例中加入启用监控 4、keepalived.conf配置示例 1、说明 keepalived本身只是监控自身的进程是否挂掉&#xff0c;如果机器并没有挂机&#xff0c;只是nginx挂了&#xff0c;那么keepalived是不…

虚拟化软件(VMWare、VB)异常最后解决手段

Version V0.0&#xff1a;20240601 Ini 前言 这里描述的是常规的解决办法还是无法解决的严重问题&#xff0c;比如”虚拟化软件(VMWare、VB)“启动”虚拟机“、和”CPU硬件加速“开启不了等问题。 一、安装了加速器、游戏平台、模拟器的电脑 解决办法&#xff1a; 把这些…

把AI引入到低代码领域

前言 引入AI到低代码开发平台&#xff0c;如驰骋低代码&#xff0c;能够带来显著的利益和价值&#xff0c;具体体现在以下几个方面&#xff1a; 1. 提升开发效率 自动化设计&#xff1a;AI可以帮助设计者自动规划菜单体系&#xff0c;减少手动设计的时间和错误。快速表单设计…

【MySQL】聊聊order by 是如何排序的

CREATE TABLE t (id int(11) NOT NULL,city varchar(16) NOT NULL,name varchar(16) NOT NULL,age int(11) NOT NULL,addr varchar(128) DEFAULT NULL,PRIMARY KEY (id),KEY city (city) ) ENGINEInnoDB;构建一个表结构&#xff0c;以及数据。 本篇主要来分析下order by是如何进…

springboot游戏售卖商城网站-计算机毕业设计源码80257

摘 要 本论文主要论述了如何使用JAVA语言开发一个springboot 游戏售卖商城网站&#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用springbootvue.js相结合框架&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0…

Stable Diffusion安装记录II

文章目录 前言0 更改python路径&#xff08;跳过&#xff09;1 Torch is not able to use GPU1.1 确认显卡1.2 安装nvdia驱动 1.3 检查CUDA1.4更改启动脚本 2 依赖安装2.1 pip install报错2.2 git报错2.3 卡在installing requirements 3 启动咯~3.1 clip报错 4 成功运行4.1 遗留…

非全考研前后的学习历程

最近2年多的学习经历 记录从2021年下半年、到2024年中&#xff0c;共2年半时间的学习经历。 从2022年4月份开始&#xff0c;复习了大约8个月&#xff0c;2022年12月24日参加研究生统一入学考试。 政治&#xff1a;4本教材看了2遍&#xff0c;认为重要的和不太理解的知识点&a…

高级Web Lab2

高级Web Lab2 12 1 按照“Lab 2 基础学习文档”文档完成实验步骤 实验截图&#xff1a; 2 添加了Web3D场景选择按钮&#xff0c;可以选择目标课程或者学习房间。