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

记录一次利用条件索引优化接口性能的实践

一、业务背景

某表数据量达到4000w,需要每天定时任务处理20w条。前2周内SQL执行无任何问题,非常快,效率比较高。随着处理完的数据量变大,处理完数据状态设置为1,SQL执行效率越来越差,已经达到了惊人的4.6秒。
SQL如下:其中表A的expired_date是有索引的。

select id,expired_date,process_status 
from A 
where 
expired_date< '2025-02-11' and expired_date >= '2025-02-01'
and process_status = 0
limit 1000

二、分析及优化

1:分析SQL执行计划

发现虽然走了expired_date 索引,但是随着定时任务处理的数据原来越多,查询的跨度比较大,过滤无效数据达到了900w,耗时4100ms,导致SQL的整体性能下降。

2:增加条件索引

create index a_process_status on a(process_status) where process_status = 0;

3:优化效果

同样的执行SQL,过滤无效数据降低到了1000以下,耗时1.8ms,极大了提升了执行效率。

http://www.dtcms.com/a/54196.html

相关文章:

  • golang并发编程如何学习
  • unsloth-llama3-8b.py 中文备注版
  • 汽车零部件厂如何选择最适合的安灯系统解决方案
  • ESLint 深度解析:原理、规则与插件开发实践
  • C# Unity 面向对象补全计划 之 索引器与迭代器
  • Spring AI 1.0.0-M6 快速开始(一)
  • MySQL批量生成建表语句
  • 解决CentOS 8.5被恶意扫描的问题
  • 美国国家航空航天局(NASA)的PUNCH任务
  • 第十章,防火墙带宽管理
  • Flink深入浅出之02
  • 软件系统属性
  • Java集合面试篇
  • 视觉-语言模型-出发点CLIP--(精读论文)
  • *图论基础(5)
  • 计算机网络笔记(一)——1.1计算机网络在信息时代中的作用
  • 数据库复习(第五版)- 第十章 数据库恢复技术
  • 【JavaEE】阻塞队列
  • HarmonyOS Next~鸿蒙系统ArkCompiler跨平台编译技术的革新实践
  • Flask 打包为exe 文件
  • C# 实现鼠标轨迹录制与回放自动化功能(附源码)
  • linux修改不可用编辑的文件(修改权限失败)
  • linux指令学习--sudo apt-get install vim
  • 【单片机项目】电源如何扩展、电源模块、电池模块如何接线
  • Codepen和tailwindcss 进行UI布局展示
  • 静态成员不依赖于特定对象的内容
  • 使用LVGL驱动三色墨水屏,Arduino
  • Android进程间通信方式之AIDL
  • Oracle SQL优化实战要点解析(11)
  • fetch为什么加了允许跨域请求mode: ‘no-cors‘,添加的多个header就丢失了?