反馈人:李冠
表数据里大,查询造成大量回表,造成MYSQL的IO与CPU过高,慢SQL为:
SELECT id,source_id,sku,logistic_type,country_code FROM t_strategy_execute_queue_replenishment_mercadolibre WHERE (id > 6357514 AND source_id = 26365 AND status = 4 AND new_sale_quantity = 0 AND is_restock = 0) ORDER BY id ASC limit 1000;
解决方案:避免回表查询,如以下例子:
SELECT t.id,t.source_id,t.sku,t.logistic_type,t.country_code FROM t_strategy_execute_queue_replenishment_mercadolibre t JOIN
(select id FROM t_strategy_execute_queue_replenishment_mercadolibre WHERE id > 6357514 AND source_id = 26365 AND status = 4 AND new_sale_quantity = 0 AND is_restock = 0 ORDER BY id ASC limit 1000) tt on t.id=tt.id