慢sql top 10, 强制指定索引,华为云慢日志列表里有大量这种慢sql
sql里 强制指定了索引:FROM P_Product FORCE INDEX(idx_finaljudgmenttime)
测试去掉强制索引1秒查询出结果
带强制索引8秒,华为日志里记录的并发查询需70秒
2.解决方案:
掉强制索引 FROM P_Product FORCE INDEX(idx_finaljudgmenttime) 改为: FROM P_Product
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 `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 FORCE INDEX(idx_finaljudgmenttime) ) m Left JOIN (SELECT `CustomerId` AS `CustomerId` , `Sku` AS `Sku` FROM `Ap_AutoPublish_Ebay_AllSku` WHERE ((((((( `CustomerId` = 1 ) AND ( `MarketId` = 2 )) AND ( `StrategyId` = 63959 )) AND ( `OrderSourceId` = 15507 )) AND ( `SiteCode` = 'US' )) AND ( `Time` >= timestamp('2023-03-22 13:15:17.587414') )) AND ( `ItemLocation` = 'CN' )) ) s ON (( `m`.`CustomerId` = `s`.`CustomerId` ) AND ( `m`.`RealSku` = `s`.`Sku` )) WHERE ((((((((((((((((((NOT ( `m`.`IsDelete`=1 ) AND (`m`.`Sku` like concat('ZN','%')) ) AND (IFNULL(CAST(`m`.`IsGroup` as SIGNED),0) = 1 )) AND ( `m`.`Id` < 75752758 )) AND (( `m`.`CustomerId` = 1 ) AND ( `m`.`FinalJudgmentStatus` = 1 ))) AND ( `s`.`Sku` IS NULL )) AND (`m`.`State` IN (0,1,4)) ) AND ( `m`.`StartBatch` >= 0 )) AND ( `m`.`StartBatch` <= 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 ((( CASE WHEN ((( `m`.`PackageLength` * `m`.`PackageWidth` ) * `m`.`PackageHeight` ) = 0 ) THEN ((( `m`.`Length` * `m`.`Width` ) * `m`.`Height` ) / 6000 ) ELSE ((( `m`.`PackageLength` * `m`.`PackageWidth` ) * `m`.`PackageHeight` ) / 6000 ) END ) /( CASE WHEN ( `m`.`PackageWeight` = 0 ) THEN `m`.`GrossWeight` ELSE `m`.`PackageWeight` END )) <= 2.00 )) AND (NOT EXISTS ( SELECT * FROM `P_Product_ProhibitionSaleMarket` WHERE (((( `CustomerId` = `m`.`CustomerId` ) AND ( `MarketId` = 2 )) AND ( `Sku` = `m`.`Sku` )) AND ( `SiteCodes` IS NULL OR `SiteCodes`='')) ))) AND (NOT EXISTS ( SELECT * FROM `M_Ebay_Listing` WHERE (((((( `CustomerId` = `m`.`CustomerId` ) AND ( `SiteCode` = 'US' )) AND ( `OrderSourceId` = 15507 )) AND ( `Sku` = `m`.`RealSku` )) AND (`OnlineStatus` IN (1)) ) AND ( `Type` = 4 )) ))) ) m Inner JOIN (select CustomerId,Sku from Ap_AutoPublish_Strategy_Source_Sku where CustomerId=1 and StrategyId = 63959 limit 0,20000) u ON (( `m`.`CustomerId` = `u`.`CustomerId` ) AND ( `m`.`RealSku` = `u`.`Sku` )) ORDER BY `m`.`Id` DESC LIMIT 0,100;