Ne, nebude.
Teoreticky index na (site, product, value, id) má vše potřebné k vytvoření indexu na jakékoli podmnožině těchto polí (včetně indexů na (product, value, id) a (value, id) ).
Sestavení indexu ze sekundárního indexu však není podporováno.
Nejprve MySQL nepodporuje rychlé úplné skenování indexu (to znamená skenování indexu ve fyzickém pořadí, nikoli logickém), takže přístupová cesta k indexu je dražší než čtení tabulky. Pro InnoDB to není problém , protože samotná tabulka je vždy seskupená.
Zadruhé, pořadí záznamů v těchto indexech je zcela odlišné, takže záznamy je třeba stejně třídit.
Hlavním problémem je však rychlost vytváření indexu v MySQL spočívá v tom, že generuje objednávku na místě (stačí vkládat záznamy jeden po druhém do B-Tree ) namísto použití předřazeného zdroje. Jak zmínil @Daniel, rychlý vytváření indexu tento problém řeší. Je k dispozici jako plugin pro 5.1 a je předinstalovaný v 5.5 .