任务描述
任务描述

1.问题分析

    智能刊登 gaussdb 慢sql top 10,缺少索引,每天100多次



2.解决方案: 在晚上业务使用量少的时候创建

诊断成功
索引优化建议:
  1. 建议在数据表 irobotbox_marketpublish.P_Product_ProhibitionSaleMarket 的 Sku,CustomerId,SiteCodes,MarketId 列上添加如下索引,以提高查询性能:
    ALTER TABLE `irobotbox_marketpublish`.`P_Product_ProhibitionSaleMarket` ADD INDEX `idx_Sku_CustomerId_SiteCodes_MarketId` (`Sku`, `CustomerId`, `SiteCodes`, `MarketId`)

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

语句优化建议:
  1. 条件中包含表达式或函数,查询会使用到临时表,将带来较差的性能。
  2. 发现IN表达式包含元素超过10,请慎用,因为元素过多会导致全表扫描。
  3. 使用`IS NULL`或`IS NOT NULL`将可能导致引擎放弃使用索引而进行全表扫描。


3. sql

SELECT `m`.`CustomerId` AS `CustomerId`, `m`.`Sku` AS `Sku`, `m`.`RealSku` AS `RealSku`, `m`.`CustomSku` AS `CustomSku`, `m`.`IsVariant` AS `IsVariant`
	, `m`.`IsMainVariant` AS `IsMainVariant`, `m`.`ParentId` AS `ParentId`, `m`.`Id` AS `Id`, `m`.`LogisticsAttribute` AS `LogisticsAttribute`, `m`.`FinalJudgmentStatus` AS `FinalJudgmentStatus`
	, `m`.`FinalJudgmentTime` AS `FinalJudgmentTime`, `m`.`AccurateKeywords` AS `AccurateKeywords`, `m`.`BrandId` AS `BrandId`, `m`.`BrandName` AS `BrandName`, `m`.`CartonPcsNum` AS `CartonPcsNum`
	, `m`.`CategoryId` AS `CategoryId`, `m`.`CategoryIds` AS `CategoryIds`, `m`.`FirstCategoryId` AS `FirstCategoryId`, `m`.`Color` AS `Color`, `m`.`DeclarationCode` AS `DeclarationCode`
	, `m`.`DeclarationLocalName` AS `DeclarationLocalName`, `m`.`DeclarationName` AS `DeclarationName`, `m`.`DeclarationPrice` AS `DeclarationPrice`, `m`.`DevelopmentType` AS `DevelopmentType`, `m`.`EditStatus` AS `EditStatus`
	, `m`.`GrossWeight` AS `GrossWeight`, `m`.`GroupSkuId` AS `GroupSkuId`, `m`.`Height` AS `Height`, `m`.`IsDelete` AS `IsDelete`, `m`.`IsGroup` AS `IsGroup`
	, `m`.`RiskInfringement` AS `RiskInfringement`, `m`.`Length` AS `Length`, `m`.`Material` AS `Material`, `m`.`MaxPurchasePrice` AS `MaxPurchasePrice`, `m`.`MinPurchasePrice` AS `MinPurchasePrice`
	, `m`.`Name` AS `Name`, `m`.`NameEn` AS `NameEn`, `m`.`NetWeight` AS `NetWeight`, `m`.`PackageHeight` AS `PackageHeight`, `m`.`PackageLength` AS `PackageLength`
	, `m`.`PackageWeight` AS `PackageWeight`, `m`.`PackageWidth` AS `PackageWidth`, `m`.`PurchasePrice` AS `PurchasePrice`, `m`.`StrongPlug` AS `StrongPlug`, `m`.`StrongPlugItem` AS `StrongPlugItem`
	, `m`.`Size` AS `Size`, `m`.`ShoeTightness` AS `ShoeTightness`, `m`.`StartBatch` AS `StartBatch`, `m`.`State` AS `State`, `m`.`SuitableforGender` AS `SuitableforGender`
	, `m`.`SupplyPrice` AS `SupplyPrice`, `m`.`Type` AS `Type`, `m`.`Width` AS `Width`
FROM (SELECT `CustomerId`, `Sku`, `CustomSku`, `IsVariant`, `IsMainVariant`
		, `ParentId`, `Name`, `NameEn`, `BrandId`, `BrandName`
		, `Material`, `FirstCategoryId`, `CategoryId`, `CategoryIds`, `State`
		, `StartBatch`, `RiskInfringement`, `Type`, `LogisticsAttribute`, `StrongPlug`
		, `StrongPlugItem`, `PurchasePrice`, `MinPurchasePrice`, `MaxPurchasePrice`, `SupplyPrice`
		, `Color`, `Size`, `PackageWeight`, `GrossWeight`, `NetWeight`
		, `Length`, `Width`, `Height`, `PackageLength`, `PackageWidth`
		, `PackageHeight`, `DevelopmentType`, `FinalJudgmentTime`, `EditStatus`, `DeclarationPrice`
		, `AccurateKeywords`, `FinalJudgmentStatus`, `DeclarationName`, `DeclarationCode`, `SuitableforGender`
		, `ShoeTightness`, `CartonPcsNum`, `IsGroup`, `GroupSkuId`, `DeclarationLocalName`
		, `IsDelete`, `RealSku`, `LastModifierId`, `LastModifier`, `LastModificationTime`
		, `CreatorId`, `Creator`, `CreationTime`, `Id`
	FROM `P_Product`
	) m
	LEFT JOIN (SELECT `CustomerId` AS `CustomerId`, `Sku` AS `Sku`
		FROM `Ap_AutoPublish_Ebay_AllSku`
		WHERE `CustomerId` = 1
			AND `MarketId` = 2
			AND `StrategyId` = 47656
			AND `OrderSourceId` = 5415
			AND `SiteCode` = 'US'
		) s ON `m`.`CustomerId` = `s`.`CustomerId`
		AND `m`.`RealSku` = `s`.`Sku`
WHERE NOT `m`.`IsDelete` = 1
	AND `m`.`Sku` LIKE concat('ZN', '%')
	AND IFNULL(`m`.`IsGroup`, 0) = 1
	AND `m`.`Id` < 75611209
	AND `m`.`CustomerId` = 1
	AND `m`.`FinalJudgmentStatus` = 1
	AND `s`.`Sku` IS NULL
	AND `m`.`FinalJudgmentTime` >= '2021-07-24 00:00:00'
	AND `m`.`FinalJudgmentTime` <= '2021-08-03 23:59:59'
	AND `m`.`State` IN (0, 1, 3, 4, 5)
	AND CASE WHEN `m`.`State` = 1 THEN `m`.`StartBatch` ELSE 1 END >= 1
	AND CASE WHEN `m`.`State` = 1 THEN `m`.`StartBatch` ELSE 200 END <= 200
	AND `m`.`RiskInfringement` IN (1)
	AND `m`.`LogisticsAttribute` IN (1, 21, 406, 27, 14, 5, 38, 403, 12, 3, 382, 404, 429, 20, 268, 387, 384, 439, 448, 416, 383, 386, 389)
	AND `m`.`PackageLength` <= 40.00
	AND `m`.`PackageWidth` <= 40.00
	AND `m`.`PackageHeight` <= 40.00
	AND `m`.`PackageLength` + `m`.`PackageWidth` + `m`.`PackageHeight` <= 90.00
	AND CASE WHEN `m`.`PackageWeight` = 0 THEN `m`.`GrossWeight` ELSE `m`.`PackageWeight` END <= 2.00 * 1000
	AND NOT EXISTS (SELECT *
		FROM `P_Product_ProhibitionSaleMarket`
		WHERE `CustomerId` = `m`.`CustomerId`
			AND `MarketId` = 2
			AND `Sku` = `m`.`Sku`
			AND (`SiteCodes` = ''
				OR `SiteCodes` IS NULL))
	AND NOT EXISTS (SELECT *
		FROM `M_Ebay_Listing`
		WHERE `CustomerId` = `m`.`CustomerId`
			AND `SiteCode` = 'US'
			AND `OrderSourceId` = 5415
			AND `Sku` = `m`.`RealSku`
			AND `OnlineStatus` IN (1)
			AND `Type` = 4)
ORDER BY `m`.`Id` DESC
LIMIT 0, 100
历史记录  
  1. 2022-09-06 14:20:23, 由 陈少军 创建。
  2. 2022-09-06 14:21:42, 由 陈少军 指派给 胡笑锋。
    修改了 预计剩余,旧值为 "0",新值为 "1"。
    参考解决方案执行
  3. 2022-09-07 09:28:34, 由 陈少军 指派给 韦思成。
    修改了 指派给,旧值为 "huxiaofeng",新值为 "weisicheng"。
    参考解决方案创建索引
  4. 2022-09-07 12:11:10, 由 韦思成 完成。
    修改了 总计消耗,旧值为 "0",新值为 "1"。
    修改了 指派给 ,旧值为 "weisicheng",新值为 "chenshaojun"。
    修改了 实际完成,旧值为 "",新值为 "2022-09-07 12:06:44"。
    修改了 任务状态,旧值为 "wait",新值为 "done"。
    修改了 实际开始,旧值为 "0000-00-00 00:00:00",新值为 "2022-09-07 12:11:10"。
    修改了 预计剩余,旧值为 "1",新值为 "0"。
    修改了 由谁完成,旧值为 "",新值为 "weisicheng"。

    已建索引

  5. 2023-10-31 14:53:14, 由 周杰 关闭。
    修改了 任务状态,旧值为 "done",新值为 "closed"。
    修改了 指派给 ,旧值为 "chenshaojun",新值为 "closed"。
    修改了 由谁关闭,旧值为 "",新值为 "zhoujie"。
    修改了 关闭时间,旧值为 "0000-00-00 00:00:00",新值为 "2023-10-31 14:53:14"。
    修改了 关闭原因,旧值为 "",新值为 "done"。
所属迭代 系统管理部 - 系统服务优化
所属模块 /
相关需求 暂无
指派给 Closed 于 2023-10-31 14:53:14
任务类型 后端
任务标签 初始
开发组
任务状态 已关闭
进度 100%
优先级 P2
关键词
抄送给 韦思成
由谁创建 陈少军 于 2022-09-06 14:20:23
由谁完成 韦思成 于 2022-09-07 12:06:44
由谁取消 暂无
由谁关闭 周杰 于 2023-10-31 14:53:14
关闭原因 已完成
最后编辑 周杰 于 2023-10-31 14:53:14
团队 最初预计 总计消耗 预计剩余
工时信息
最初预计 0工时
总计消耗 1工时
预计剩余 0工时
预计开始 2022-09-06
实际开始 2022-09-07
截止日期 2022-09-09