mysql慢sql问题修复

突发系统某定时任务一直未执行成功,一开始用几百条数据做测试发现无反应,后续改为1条数据发现仍无反应。
问题sql:

复制代码
select * from fnd_items_itf fii
        where fii.ID in
              (
                  select max(f.ID) from fnd_items_itf f
                  where FLAG_MESSAGE = #{flagMessage}
                    and FINISHED_FLAG = 'N'
                  group by f.INVENTORY_ITEM_ID, f.organization_id
              )

1条数据执行上述sql,运行时间大概10分钟左右。

优化后sql:

复制代码
SELECT
            *
        FROM
            fnd_items_itf fii
        WHERE
                fii.ID IN (
                SELECT
                    s.*
                FROM
                    (
                        SELECT
                            max( f.ID )
                        FROM
                            fnd_items_itf f
                        WHERE
                            f.FLAG_MESSAGE = #{flagMessage}
                          AND f.FINISHED_FLAG = 'N'
                        GROUP BY
                            f.INVENTORY_ITEM_ID,
                            f.organization_id
                    ) s
            )

group by和max函数均对fii.id 关联下推有 误导,导致mysql内核执行慢。

相关推荐
CHANG_THE_WORLD1 小时前
switch case 二分搜索风格
前端·数据库
m0_598177231 小时前
SQL核心(1)
数据库·sql
DarkAthena1 小时前
【ORACLE】分区表数据倾斜会发生什么
数据库·oracle
indexsunny1 小时前
互联网大厂Java求职面试实战:微服务与Spring Boot在电商场景中的应用
java·数据库·spring boot·微服务·kafka·hibernate·电商
DarkAthena1 小时前
【GaussDB】数据静止状态下同一个SQL或同一个存储过程执行第6次报错的问题排查
数据库·sql·gaussdb
huwei8532 小时前
QT 连接数据库类
数据库·qt·oracle
l1t2 小时前
郭其先生利用DeepSeek实现的PostgreSQL递归CTE实现DFS写法
sql·算法·postgresql·深度优先
千寻技术帮2 小时前
10349_基于Springboot的万仙山旅游管理系统
mysql·springboot·旅游管理·在线旅游
尽兴-2 小时前
MySQL 中一条 SQL 的执行流程详解
sql·mysql·adb·dba
JAVA拾贝2 小时前
全链路数据监控 Binlog View
mysql·canal·binlog·binlog view·数据链路监控