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内核执行慢。

相关推荐
wWYy.18 小时前
详解redis(15):缓存雪崩
数据库·redis·缓存
zzcufo18 小时前
多邻国第五阶段第13部分
java·开发语言·数据库
这周也會开心18 小时前
Redis相关知识点
数据库·redis·缓存
小白爱运维19 小时前
MySQL升级8.0.44后登录报错-系统表不支持'MyISAM'存储引擎
数据库·mysql
json{shen:"jing"}19 小时前
1. 两数之和
前端·javascript·数据库
github.com/starRTC19 小时前
Claude Code中英文系列教程19:使用subagent子代理与创建自定义子代理【重要】
前端·javascript·数据库
Anastasiozzzz20 小时前
Redis的键过期是如何删除的?【面试高频】
java·数据库·redis·缓存·面试
北海屿鹿20 小时前
【MySQL】内置函数
android·数据库·mysql
qq_3660862221 小时前
SQL Server 之 Full-Text Search 全文搜索
运维·服务器·数据库
李少兄1 天前
数据库开发中的布尔表示:0 与 1 的语义规范
数据库·数据库开发