NULL vs NOT NULL -- Použijte NOT NULL pokud nemáte obchodní důvod pro NULL .
Použijte InnoDB s příslušným PRIMARY KEY na každém stole. To bude pravděpodobně rychlejší.
Někomu pomůže „používání indexu“, kde to dává smysl.
product.categoryid = 4871 nepatří do ON klauzule pro vendorimport; přesuňte jej do WHERE doložka. (Věci to neurychlí.)
Váš dotaz nelze dále optimalizovat – musí proveďte všechny JOINy a doručte všechny řádky.
Ale... Opravdu chcete 3917 řádků výstupu? Dokážete si s tím poradit? Možná chcete jen několik z nich a mohli byste je filtrovat během SELECT? To by mohlo věci urychlit.