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

相关推荐
愤怒的苹果ext16 分钟前
Flink CDC MySQL同步到Elasticsearch
mysql·elasticsearch·flink·cdc·同步数据
小鸡脚来咯39 分钟前
MySQL索引优化
sql·mysql
YIN_尹1 小时前
【MySQL】数据库基础
数据库·mysql·adb
秃狼1 小时前
mysql explain 使用入门
数据库·mysql
冰暮流星1 小时前
数据库事务四个特性
数据库
醉卧考场君莫笑1 小时前
sql基础操作
数据库·sql·oracle
QT 小鲜肉2 小时前
【Linux命令大全】003.文档编辑之csplit命令(实操篇)
linux·运维·服务器·chrome·mysql
北邮刘老师2 小时前
从软件工程(SE)到智能体工程(AE):开发范式的差异与升级
数据库·人工智能·架构·软件工程·智能体·智能体互联网
Predestination王瀞潞2 小时前
Java EE数据访问框架技术(第二章:Mybatis多表关系映射)
数据库