1.问题分析
华为云慢sql top 10,查询时间 289.819 秒
2.解决方案
索引优化建议:
- 建议在数据表 irobotbox_marketpublish.M_Ebay_Listing 的 ProductId,OrderSourceId,CustomerId 列上添加如下索引,以提高查询性能:
ALTER TABLE `irobotbox_marketpublish`.`M_Ebay_Listing` ADD INDEX `idx_ProductId_OrderSourceId_CustomerId` (`ProductId`, `OrderSourceId`, `CustomerId`)
注意:在业务高峰期,变更表结构存在风险,请谨慎操作!在下班业务低峰执行
3.慢sql
SELECT DISTINCT `v`.`ProductId` AS `ProductId`, `v`.`Name` AS `Name`, `v`.`MainImage` AS `MainImage`, `v`.`Price` AS `Price`, `v`.`OrderSourceCountry` AS `OrderSourceCountry`
FROM `M_Ebay_Listing_Sub` s
INNER JOIN `M_Ebay_Listing` v ON `s`.`CustomerId` = `v`.`CustomerId`
AND `s`.`OrderSourceId` = `v`.`OrderSourceId`
AND `s`.`ProductId` = `v`.`ProductId`
WHERE `v`.`CategoryId` IN ('125072', '20551', '36016', '36017', '16102', '46782', '20563', '36025', '38225', '36022', '4959', '36018', '20552', '20569', '31586', '38235', '41510', '20580', '79654', '31587', '36019', '31601', '20549', '101415', '159889', '38237', '10034', '74316', '41509', '36023', '31588', '41511', '20578')
AND `v`.`CustomerId` = 1
AND `v`.`OrderSourceId` = 13245
AND `v`.`OnlineStatus` = 1
ORDER BY RAND()
LIMIT 0, 24
业务上规避,不走sub关联查询