SELECT t.* FROM ( SELECT t1.uuid AS uuid, IF(t1.eventLevel is null,7,t1.eventLevel) as eventLevel, t8.`name` AS eventLev

动态 未结 0 84
小小草
小小草 LV1 2023年9月23日 23:40 发表
以下是对SQL语句的优化建议: 1. 去掉子查询,直接使用表名进行查询。 2. 使用LEFT JOIN改为INNER JOIN,可以提高查询效率。 3. 将CASE WHEN语句中的常量字符串放到外部定义,避免重复计算。 4. 将GROUP BY和ORDER BY中的字段都加上索引,以提高查询效率。 优化后的SQL语句如下: SELECT t1.uuid AS uuid, IFNULL(t1.eventLevel, 7) AS eventLevel, t8.`name` AS eventLevelStr, t1.STATUS AS eventStatus, CASE t1.STATUS WHEN 1 THEN '待处理' WHEN 2 THEN '处理中' WHEN 3 THEN '已关闭' ELSE '' END AS eventStatusStr, t1.safeStatus AS notifyStatus, CASE t1.safeStatus WHEN 1 THEN '已通报' ELSE '未通报' END AS notifyStatusStr, FROM_UNIXTIME(t1.createTime) AS happenedTime, t1.createTime AS happenedTimeStamp, t4.name AS ruleName, t4.type AS ruleType, CASE t4.type WHEN 1 THEN '登录' WHEN 2 THEN '改密' WHEN 3 THEN '添加' WHEN 4 THEN '锁定' WHEN 5 THEN '开启' ELSE '' END AS ruleTypeStr, t6.uuid AS assetUuid, t6.itcompName AS assetName, t6.controlAdderss AS ip, t1.eventMessage AS eventContent, t1.dealUser AS handlerUuid, t7.user_real_name AS handlerName, t9.taskUuid AS safeOrderUuid, t10.citype_Name AS assetType, t1.logSourceUuid FROM circumambulation_strategy_event_info t1 INNER JOIN circumambulation_strategy_info t4 ON t4.uuid = t1.strategyUuid INNER JOIN t_monitor_itcomp t6 ON t6.uuid = t1.logSourceUuid INNER JOIN t_user_info t7 ON t7.uuid = t1.dealUser INNER JOIN event_level_config t8
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复