任务描述

1.问题分析

慢sql,分析发现缺少索引


2.解决方案

按提示在业务低峰 创建索引


索引优化建议:
  1. 建议在数据表 irobotbox_marketpublish.P_Product 的 State,RiskInfringement,CustomerId,FinalJudgmentTime 列上添加如下索引,以提高查询性能:
    ALTER TABLE `irobotbox_marketpublish`.`P_Product` ADD INDEX `idx_State_RiskInfringement_CustomerId_FinalJudgmentTime` (`State`, `RiskInfringement`, `CustomerId`, `FinalJudgmentTime`)

注意:在业务高峰期,变更表结构存在风险,请谨慎操作!


3.慢sql


SELECT s.*
FROM (SELECT `CustomerId` AS `CustomerId`, `Sku` AS `Sku`, `RealSku` AS `RealSku`
	FROM `P_Product`
	WHERE `CustomerId` = 1
		AND `FinalJudgmentTime` <= timestamp('2023-04-27 07:40:55.890925')
		AND `FinalJudgmentTime` >= timestamp('2023-03-28 07:40:55.890924')
		AND `State` IN (0, 1, 5)
		AND `RiskInfringement` IN (1)
		AND `PackageLength` <= 60.00
		AND `PackageWidth` <= 60.00
		AND `PackageHeight` <= 60.00
		AND `PackageLength` + `PackageWidth` + `PackageHeight` <= 90.00
	) p
	INNER JOIN (SELECT *
		FROM `M_Ebay_Listing`
		WHERE `Id` > 2803518970
			AND `CustomerId` = 1
			AND NOT (`Sku` IS NULL
			OR `Sku` = '')
			AND `OrderSourceId` IN (7746)
			AND `PublishTime` >= timestamp('2023-03-26 00:00:00')
			AND `PublishTime` <= timestamp('2023-04-05 00:00:00')
			AND `OnlineStatus` IN (1)
			AND 'Germany' = `SiteCode`
			AND `IsAutoPublish` = 1
			AND 'CN' = `Country`
		) s ON `p`.`CustomerId` = `s`.`CustomerId`
		AND `p`.`Sku` = `s`.`Sku`
ORDER BY `s`.`Id` ASC
LIMIT 0, 100

历史记录  
  1. 2023-04-27 09:25:49, 由 陈少军 创建。
  2. 2023-04-27 09:26:57, 由 陈少军 编辑。
    修改了 任务名称,区别为:
    001- 【智能刊登慢sql缺少索引】M_Ebay_Listing
    001+ 【智能刊登慢sql缺少索引】M_Ebay_Listing,P_Product
    001- 【智能刊登慢sql缺少索引】M_Ebay_Listing
    001+ 【智能刊登慢sql缺少索引】M_Ebay_Listing,P_Product
    修改了 任务描述,区别为:
    006-
    006+
    007- 索引优化建议:
    007+ 索引优化建议:
    008- 建议在数据表irobotbox_marketpublish.P_Product的State,RiskInfringement,CustomerId,FinalJudgmentTime列上添加如下索引,以提高查询性能:
    008+ 建议在数据表irobotbox_marketpublish.P_Product的State,RiskInfringement,CustomerId,FinalJudgmentTime列上添加如下索引,以提高查询性能:
    010-
    010+
    011- 注意:在业务高峰期,变更表结构存在风险,请谨慎操作!
    011+ 注意:在业务高峰期,变更表结构存在风险,请谨慎操作!
    012-
    012+
    013-
    013+ 3.慢sql
    014- 3.慢sql
    014+
    015-
    015+
    016-
    016+ SELECT s.*
    017- SELECT s.*
    017+ FROM (SELECT `CustomerId` AS `CustomerId`, `Sku` AS `Sku`, `RealSku` AS `RealSku`
    018- FROM (SELECT `CustomerId` AS `CustomerId`, `Sku` AS `Sku`, `RealSku` AS `RealSku`
    018+ FROM `P_Product`
    019- FROM `P_Product`
    019+ WHERE `CustomerId` = 1
    020- WHERE `CustomerId` = 1
    020+ AND `FinalJudgmentTime` &lt;= timestamp('2023-04-27 07:40:55.890925')
    021- AND `FinalJudgmentTime` &lt;= timestamp('2023-04-27 07:40:55.890925')
    021+ AND `FinalJudgmentTime` &gt;= timestamp('2023-03-28 07:40:55.890924')
    022- AND `FinalJudgmentTime` &gt;= timestamp('2023-03-28 07:40:55.890924')
    022+ AND `State` IN (0, 1, 5)
    023- AND `State` IN (0, 1, 5)
    023+ AND `RiskInfringement` IN (1)
    024- AND `RiskInfringement` IN (1)
    024+ AND `PackageLength` &lt;= 60.00
    025- AND `PackageLength` &lt;= 60.00
    025+ AND `PackageWidth` &lt;= 60.00
    026- AND `PackageWidth` &lt;= 60.00
    026+ AND `PackageHeight` &lt;= 60.00
    027- AND `PackageHeight` &lt;= 60.00
    027+ AND `PackageLength` + `PackageWidth` + `PackageHeight` &lt;= 90.00
    028- AND `PackageLength` + `PackageWidth` + `PackageHeight` &lt;= 90.00
    028+ ) p
    029- ) p
    029+ INNER JOIN (SELECT *
    030- INNER JOIN (SELECT *
    030+ FROM `M_Ebay_Listing`
    031- FROM `M_Ebay_Listing`
    031+ WHERE `Id` &gt; 2803518970
    032- WHERE `Id` &gt; 2803518970
    032+ AND `CustomerId` = 1
    033- AND `CustomerId` = 1
    033+ AND NOT (`Sku` IS NULL
    034- AND NOT (`Sku` IS NULL
    034+ OR `Sku` = '')
    035- OR `Sku` = '')
    035+ AND `OrderSourceId` IN (7746)
    036- AND `OrderSourceId` IN (7746)
    036+ AND `PublishTime` &gt;= timestamp('2023-03-26 00:00:00')
    037- AND `PublishTime` &gt;= timestamp('2023-03-26 00:00:00')
    037+ AND `PublishTime` &lt;= timestamp('2023-04-05 00:00:00')
    038- AND `PublishTime` &lt;= timestamp('2023-04-05 00:00:00')
    038+ AND `OnlineStatus` IN (1)
    039- AND `OnlineStatus` IN (1)
    039+ AND 'Germany' = `SiteCode`
    040- AND 'Germany' = `SiteCode`
    040+ AND `IsAutoPublish` = 1
    041- AND `IsAutoPublish` = 1
    041+ AND 'CN' = `Country`
    042- AND 'CN' = `Country`
    042+ ) s ON `p`.`CustomerId` = `s`.`CustomerId`
    043- ) s ON `p`.`CustomerId` = `s`.`CustomerId`
    043+ AND `p`.`Sku` = `s`.`Sku`
    044- AND `p`.`Sku` = `s`.`Sku`
    044+ ORDER BY `s`.`Id` ASC
    045- ORDER BY `s`.`Id` ASC
    045+ LIMIT 0, 100
    046- LIMIT 0, 100
    046+
    047-
    006- <p style="font-size:14px;background-color:#FFFFFF;">
    006+ <p style="font-size:14px;background-color:#FFFFFF;"><br /></p>
    007- </p><div class="sql_tuning_advice_title-3b3aBp" style="font-size:12px;margin:10px 0px 5px;padding:0px;color:#FF8833;font-family:HuaweiFont, Helvetica, Arial, 'PingFangSC-Regular';">索引优化建议:</div>
    007+ <div class="sql_tuning_advice_title-3b3aBp" style="font-size:12px;margin:10px 0px 5px;padding:0px;color:#FF8833;font-family:HuaweiFont, Helvetica, Arial, 'PingFangSC-Regular';">索引优化建议:</div>
    008- <ol class="ng-scope" style="font-size:12px;margin-left:0px;color:#252B3A;font-family:HuaweiFont, Helvetica, Arial, 'PingFangSC-Regular';"><li class="ng-binding ng-scope">建议在数据表<span class="warning_color-PMRVtN" style="color:#FF8833;">irobotbox_marketpublish.P_Product</span>的<span class="warning_color-PMRVtN" style="color:#FF8833;">State,RiskInfringement,CustomerId,FinalJudgmentTime</span>列上添加如下索引,以提高查询性能:
    008+ <ol class="ng-scope" style="font-size:12px;margin-left:0px;color:#252B3A;font-family:HuaweiFont, Helvetica, Arial, 'PingFangSC-Regular';"><li class="ng-binding ng-scope">建议在数据表<span class="warning_color-PMRVtN" style="color:#FF8833;">irobotbox_marketpublish.P_Product</span>的<span class="warning_color-PMRVtN" style="color:#FF8833;">State,RiskInfringement,CustomerId,FinalJudgmentTime</span>列上添加如下索引,以提高查询性能:
    010- </li>
    010+ </li>
    011- </ol><p class="mt5 ng-binding ng-scope" style="font-size:12px;color:#252B3A;font-family:HuaweiFont, Helvetica, Arial, 'PingFangSC-Regular';">注意:在业务高峰期,变更表结构存在风险,请谨慎操作!</p>
    011+ </ol><p class="mt5 ng-binding ng-scope" style="font-size:12px;color:#252B3A;font-family:HuaweiFont, Helvetica, Arial, 'PingFangSC-Regular';">注意:在业务高峰期,变更表结构存在风险,请谨慎操作!</p>
    012-
    012+ <p style="font-size:14px;background-color:#FFFFFF;"><br /></p>
    013- <p style="font-size:14px;background-color:#FFFFFF;"><br /></p>
    013+ <p style="font-size:14px;background-color:#FFFFFF;">3.慢sql</p>
    014- <p style="font-size:14px;background-color:#FFFFFF;">3.慢sql</p>
    014+ <p style="font-size:14px;background-color:#FFFFFF;"><br /></p>
    015- <p style="font-size:14px;background-color:#FFFFFF;">
    015+ <div class="sql_tuning_advice_title-3b3aBp" style="margin:10px 0px 5px;padding:0px;color:#FF8833;font-family:HuaweiFont, Helvetica, Arial, 'PingFangSC-Regular';">
    016- </p><div class="sql_tuning_advice_title-3b3aBp" style="margin:10px 0px 5px;padding:0px;color:#FF8833;font-family:HuaweiFont, Helvetica, Arial, 'PingFangSC-Regular';">
    016+ <pre class="ng-binding">SELECT s.*
    017- <pre class="ng-binding">SELECT s.*
    017+ FROM (SELECT `CustomerId` AS `CustomerId`, `Sku` AS `Sku`, `RealSku` AS `RealSku`
    018- FROM (SELECT `CustomerId` AS `CustomerId`, `Sku` AS `Sku`, `RealSku` AS `RealSku`
    018+ FROM `P_Product`
    019- FROM `P_Product`
    019+ WHERE `CustomerId` = 1
    020- WHERE `CustomerId` = 1
    020+ AND `FinalJudgmentTime` &lt;= timestamp('2023-04-27 07:40:55.890925')
    021- AND `FinalJudgmentTime` &lt;= timestamp('2023-04-27 07:40:55.890925')
    021+ AND `FinalJudgmentTime` &gt;= timestamp('2023-03-28 07:40:55.890924')
    022- AND `FinalJudgmentTime` &gt;= timestamp('2023-03-28 07:40:55.890924')
    022+ AND `State` IN (0, 1, 5)
    023- AND `State` IN (0, 1, 5)
    023+ AND `RiskInfringement` IN (1)
    024- AND `RiskInfringement` IN (1)
    024+ AND `PackageLength` &lt;= 60.00
    025- AND `PackageLength` &lt;= 60.00
    025+ AND `PackageWidth` &lt;= 60.00
    026- AND `PackageWidth` &lt;= 60.00
    026+ AND `PackageHeight` &lt;= 60.00
    027- AND `PackageHeight` &lt;= 60.00
    027+ AND `PackageLength` + `PackageWidth` + `PackageHeight` &lt;= 90.00
    028- AND `PackageLength` + `PackageWidth` + `PackageHeight` &lt;= 90.00
    028+ ) p
    029- ) p
    029+ INNER JOIN (SELECT *
    030- INNER JOIN (SELECT *
    030+ FROM `M_Ebay_Listing`
    031- FROM `M_Ebay_Listing`
    031+ WHERE `Id` &gt; 2803518970
    032- WHERE `Id` &gt; 2803518970
    032+ AND `CustomerId` = 1
    033- AND `CustomerId` = 1
    033+ AND NOT (`Sku` IS NULL
    034- AND NOT (`Sku` IS NULL
    034+ OR `Sku` = '')
    035- OR `Sku` = '')
    035+ AND `OrderSourceId` IN (7746)
    036- AND `OrderSourceId` IN (7746)
    036+ AND `PublishTime` &gt;= timestamp('2023-03-26 00:00:00')
    037- AND `PublishTime` &gt;= timestamp('2023-03-26 00:00:00')
    037+ AND `PublishTime` &lt;= timestamp('2023-04-05 00:00:00')
    038- AND `PublishTime` &lt;= timestamp('2023-04-05 00:00:00')
    038+ AND `OnlineStatus` IN (1)
    039- AND `OnlineStatus` IN (1)
    039+ AND 'Germany' = `SiteCode`
    040- AND 'Germany' = `SiteCode`
    040+ AND `IsAutoPublish` = 1
    041- AND `IsAutoPublish` = 1
    041+ AND 'CN' = `Country`
    042- AND 'CN' = `Country`
    042+ ) s ON `p`.`CustomerId` = `s`.`CustomerId`
    043- ) s ON `p`.`CustomerId` = `s`.`CustomerId`
    043+ AND `p`.`Sku` = `s`.`Sku`
    044- AND `p`.`Sku` = `s`.`Sku`
    044+ ORDER BY `s`.`Id` ASC
    045- ORDER BY `s`.`Id` ASC
    045+ LIMIT 0, 100</pre>
    046- LIMIT 0, 100</pre>
    046+ <br /></div>
    047- <br /></div>
  3. 2023-04-30 17:30:29, 由 胡笑锋 完成。
    修改了 总计消耗,旧值为 "0",新值为 "1"。
    修改了 指派给 ,旧值为 "huxiaofeng",新值为 "chenshaojun"。
    修改了 实际完成,旧值为 "",新值为 "2023-04-30 17:30:07"。
    修改了 任务状态,旧值为 "wait",新值为 "done"。
    修改了 实际开始,旧值为 "0000-00-00 00:00:00",新值为 "2023-04-30 17:30:29"。
    修改了 预计剩余,旧值为 "0.5",新值为 "0"。
    修改了 由谁完成,旧值为 "",新值为 "huxiaofeng"。
    sql是动态生成,条件复杂,不适合这样添加索引
  4. 2023-10-31 14:53:17, 由 周杰 关闭。
    修改了 任务状态,旧值为 "done",新值为 "closed"。
    修改了 指派给 ,旧值为 "chenshaojun",新值为 "closed"。
    修改了 由谁关闭,旧值为 "",新值为 "zhoujie"。
    修改了 关闭时间,旧值为 "0000-00-00 00:00:00",新值为 "2023-10-31 14:53:17"。
    修改了 关闭原因,旧值为 "",新值为 "done"。
所属迭代 系统管理部 - 系统服务优化
所属模块 /
相关需求 暂无
指派给 Closed 于 2023-10-31 14:53:17
任务类型 后端
任务标签 初始
开发组 仓储物流开发组
任务状态 已关闭
进度 100%
优先级 P2
关键词
抄送给
由谁创建 陈少军 于 2023-04-27 09:25:49
由谁完成 胡笑锋 于 2023-04-30 17:30:07
由谁取消 暂无
由谁关闭 周杰 于 2023-10-31 14:53:17
关闭原因 已完成
最后编辑 周杰 于 2023-10-31 14:53:17
团队 最初预计 总计消耗 预计剩余
工时信息
最初预计 0.5工时
总计消耗 1工时
预计剩余 0工时
预计开始 2023-04-27
实际开始 2023-04-30
截止日期 2023-04-27