1.问题分析
华为日志里大量的这个慢sql,执行时间20秒左右,请求很多
2.解决方案
2.1因要查询多个字段,而且M_Ebay_Listing表数据量大61675495行,优化方案是先查询出id,在通过id join 查询出需要的字段,测试速度非常快1秒左右
2.2 优化后的sql
SELECT a.`Id`, CustomerId , OrderSourceId , ProductId , Sku AS Sku , CustomSku, SellerSku , NAME , MainImage, PublishTime
FROM M_Ebay_Listing a JOIN
(
SELECT Id FROM M_Ebay_Listing
WHERE 1 = `CustomerId` AND 7288 = `OrderSourceId` AND `OnlineStatus` = 1 AND `SiteCode` = 'Germany' AND NOT( `Sku` IS NULL OR `Sku`='') AND `Id` >268653961 ORDER BY Id ASC LIMIT 0,100
) AS b ON a.Id=b.Id
3.慢sql
SELECT `Id` AS `Id` , `CustomerId` AS `CustomerId` , `OrderSourceId` AS `OrderSourceId` , `ProductId` AS `ProductId` , `Sku` AS `Sku` , `CustomSku` AS `CustomSku` , `SellerSku` AS `SellerSku` , `Name` AS `Name` , `MainImage` AS `MainImage` , `PublishTime` AS `PublishTime` FROM `M_Ebay_Listing` WHERE (((((( 1 = `CustomerId` ) AND ( 9634 = `OrderSourceId` )) AND ( `OnlineStatus` = 1 )) AND (`SiteCode` = 'Germany') ) AND NOT( `Sku` IS NULL OR `Sku`='')) AND ( `Id` >2271653355)) ORDER BY Id ASC LIMIT 0,100;