慢sql top 10,缺少大量索引,执行需要30分钟
2.解决方案: 在晚上业务使用量少的时候创建
索引优化建议:
- 建议在数据表 irobotbox_marketpublish.m_allegro_listing_sub_additional 的 ProductId,OrderSourceId 列上添加如下索引,以提高查询性能:
ALTER TABLE `irobotbox_marketpublish`.`m_allegro_listing_sub_additional` ADD INDEX `idx_ProductId_OrderSourceId` (`ProductId`, `OrderSourceId`)
-
- 发现IN表达式包含元素超过10,请慎用,因为元素过多会导致全表扫描。
注意:在业务高峰期,变更表结构存在风险,请谨慎操作!
3.SQL
SELECT COUNT(1) FROM m_allegro_listing a INNER JOIN m_allegro_listing_sub_additional b ON a.ProductId = b.ProductId AND a.OrderSourceId = b.OrderSourceId WHERE a.CustomerId = 1 AND a.OnlineStatus = 1 AND a.OrderSourceId IN (9058, 9062, 9046, 10205, 10207, 10242, 10401, 10493, 10715, 10724, 11006, 11029, 11929, 11930, 11931, 12034, 12035, 12036, 12084, 12211, 12226, 12238, 12498, 12531, 12532, 12567, 12569, 12570, 12574, 13031, 10783, 13630, 13647, 13961, 14077, 14376)