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

相关推荐
原来是猿6 分钟前
MySQL【基本查询上 - 表的增删改查】
数据库·mysql
yashuk10 分钟前
【MySQL】表的相关操作
android·mysql·adb
scofield_gyb17 分钟前
Redis简介、常用命令及优化
数据库·redis·缓存
難釋懷19 分钟前
Redis搭建分片集群
数据库·redis·缓存
happymaker062619 分钟前
JDBC(MySQL)——DAY04(调用存储过程,存储函数)
java·数据库·mysql
微学AI1 小时前
时序数据库选型:聚焦时间序列数据库Apache IoTDB——为工业物联网与大数据而生
数据库·apache·时序数据库
jason_renyu1 小时前
Windows下MySQL多实例配置:添加多端口服务(独立配置文件法)
windows·mysql·mysql配置多端口服务
952361 小时前
MySQL - 集群架构与实践
数据库·学习·mysql·架构
原来是猿1 小时前
Linux-【文件系统下】
linux·运维·数据库
Java面试题总结2 小时前
2026最新Java八股文(完整版)
java·开发语言·jvm·数据库·java面试·java八股文