记一次mysql索引优化

devtools/2024/12/22 23:26:35/

生产日志告警出现一条慢 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.ppmy.cn/devtools/45970.html

相关文章

构建安全的Web环境:WAF配置与管理

构建安全的Web环境:WAF配置与管理 在当今数字化时代,Web应用已成为企业和个人提供服务的重要平台。然而,Web应用面临的安全威胁也日益增多,包括跨站脚本(XSS)、SQL注入、分布式拒绝服务(DDoS&a…

02_初识Nginx

文章目录 一、基础知识1.1 什么是代理服务器1.2 正向代理概述1.3 反向代理概述1.4 负载均衡1.5 动静分离 二、Nginx2.1 Nginx是什么2.2 Nginx的特点2.3 Nginx负载均衡策略2.4 Nginx的Master-Worker模式 参考链接 一、基础知识 1.1 什么是代理服务器 在最简单的场景下&#xf…

[leetcode hot150]第五十七题,插入区间

题目: 给你一个 无重叠的 ,按照区间起始端点排序的区间列表 intervals,其中 intervals[i] [starti, endi] 表示第 i 个区间的开始和结束,并且 intervals 按照 starti 升序排列。同样给定一个区间 newInterval [start, end] 表示…

今日好料推荐(大数据湖体系规划)

今日好料推荐(大数据湖体系规划) 参考资料在文末获取,关注我,获取优质资源。 大数据湖体系规划 一、大数据湖简介 大数据湖(Data Lake)是一个集中式的存储库,用于存储来自各种来源的结构化和…

力扣173题:二叉搜索树迭代器(含模拟面试)

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容,和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣! 推荐:数据分析螺丝钉的首页 关注微信公众号 数据分析螺丝钉 免费领取价值万元的python/java/商业…

海外仓系统定制是否有必要:对中小海外仓来说,拿来即用更划算

中小海外仓现在可以说占据了海外仓行业极大的比重,这类海外仓凭借服务优良,灵活的优势吸引了很多跨境电商的喜爱。 不过对于中小型海外仓本身,随着客户的增加,日常的仓库管理、订单货物处理却变成了一个挑战。应对这种情况&#…

c++与c

命名空间的设置: 避免冲突 命名空间: 如果将变量全部定义在全局可能不安全,都可以进行修改。 如果将变量定义在局部,当出了大括号就不能使用。 所以说在定义一个命名空间的时候 定义函数,变量,命名空间…

头歌算法-刷题

递归与循环 1.找出 5 个自然数中取 3 个数的组合 循环算法 #include <stdio.h>void combloop1(int n, int r) {/********** Begin **********/int arr[]{1,2,3,4,5};nsizeof(arr)/sizeof(arr[0]); for(int i0;i<n-2;i){for(int ji1;j<n-1;j){for(int kj1;k<…