1.问题分析
慢sql,分析发现缺少索引
2.解决方案
按提示在业务低峰 创建索引
索引优化建议:
建议在数据表 irobotbox_marketpublish.M_Ebay_Listing 的 CategoryId,OrderSourceId,Country,OnlineStatus 列上添加如下索引,以提高查询性能:
-
ALTER TABLE `irobotbox_marketpublish`.`M_Ebay_Listing` ADD INDEX `idx_CategoryId_OrderSourceId_Country_OnlineStatus` (`CategoryId`, `OrderSourceId`, `Country`, `OnlineStatus`)
注意:在业务高峰期,变更表结构存在风险,请谨慎操作!
2.2 确认这个排序是否合理
ORDER BY RAND()
SELECT DISTINCT `ProductId` AS `ProductId`, `Name` AS `Name`, `MainImage` AS `MainImage`, `Price` AS `Price`, `OrderSourceCountry` AS `OrderSourceCountry`
FROM `M_Ebay_Listing`
WHERE `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 `CustomerId` = 1
AND `OrderSourceId` = 9501
AND `Country` IN ('CN')
AND `OnlineStatus` = 1
ORDER BY RAND()
LIMIT 0, 24