Não, não vai.
Teoricamente, um índice em
(site, product, value, id) tem tudo o que é necessário para construir um índice em qualquer subconjunto desses campos (incluindo os índices em (product, value, id) e (value, id) ). No entanto, não há suporte para a criação de um índice a partir de um índice secundário.
Primeiro,
MySQL não oferece suporte à verificação rápida de índice completo (que é a verificação de um índice em ordem física em vez de lógica), tornando assim um caminho de acesso de índice mais caro do que a leitura da tabela. Isso não é um problema para o InnoDB , já que a própria tabela é sempre agrupada. Em segundo lugar, as ordens de registros nesses índices são completamente diferentes, portanto, os registros precisam ser classificados de qualquer maneira.
No entanto, o principal problema com a velocidade de criação do índice no
MySQL é que ele gera o pedido no local (basta inserir os registros um a um em uma B-Tree ) em vez de usar uma fonte pré-classificada. Como o @Daniel mencionou, a criação rápida de índice resolve esse problema. Está disponível como um plugin para 5.1 e vem pré-instalado em 5.5 .