今天在技术经理的现场优化中,把一条需要40000ms的sql语句优化到9ms左右,将近提高4500多倍的速度
优化前:
SELECT `o`.* FROM `order` `o` INNER JOIN `virtual_order` `vo` ON `o`.`virtual_order_id` = `vo`.`id` INNER JOIN `user` `u` ON `o`.`user_id` = `u`.`id` LEFT JOIN `crm_department` `d` ON `o`.`salesman_department_id` = `d`.`id` LEFT JOIN `order_team` `ot` ON `o`.`id` = `ot`.`order_id` WHERE ((d.path like '1-46-%') OR (`d`.`id`=46) OR (`o`.`salesman_aid`=93) OR (`ot`.`administrator_id`=93)) AND (`vo`.`is_vest`=0) ORDER BY `vo`.`created_at` DESC LIMIT 20
40790ms
优化后
EXPLAIN SELECT o.*
FROM `order` `o`
LEFT JOIN `crm_department` `d` ON `o`.`salesman_department_id` = `d`.`id`
LEFT JOIN ( SELECT order_id FROM `order_team` Where `administrator_id`=93) as ot ON `o`.`id` = `ot`.`order_id`
WHERE o.is_vest=0 AND ((d.path like '1-46-%') OR (`d`.`id`=46) OR (`o`.`salesman_aid`=93))
ORDER BY `o`.`created_at` DESC LIMIT 20;
9.21ms
Detect languageAfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu |
|
AfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu |
|
|
|
|
|