Mysql – Melhoria de desempenho de “ORDER BY” com índice

Mysql – Melhoria de desempenho de “ORDER BY” com índice

Posso melhorar o "ORDER BY" adicionando um índice em fld_date.

 SELECT * FROM t1 WHERE fld1='XXX' fld2='XXX' ORDER BY fld_date;

A consulta usa o índice de (fld1,fld2 - índice combinado) na cláusula where. Como ORDER BY não corresponde exatamente ao índice, se eu adicionar um índice com fld_date, será útil para melhorar o desempenho de ORDER BY fld_date. ?

Responder1

Você deve adicionar um índice em (fld1, fld2, fld_date). Observe que funcionará apenas se fld1 e fld2 estiverem definidos para correspondência exata na WHEREcláusula, expressões não exatas como <ou >desativarão o índice para ordenação.

Responder2

Observe os índices clusterizados, eles podem ser usados ​​para melhorar o desempenho em alguns casos com grandes conjuntos de dados, aparentemente era isso que os bancos de dados de estilo SQL usavam quando o poder de computação era muito limitado.

Fonte: estou trabalhando com um desenvolvedor sênior que mencionou que usaria um índice para evitar a necessidade de selecionar os valores reais no banco de dados devido a restrições de taxa de transferência.

De acordo com a documentação que verifiquei, elas são apenas 'chaves primárias', mas não são as mesmas de antes, pode ser necessário pesquisar para obter qualquer benefício obscuro de desempenho.

Informações adicionais podem ser encontradas aqui:https://dev.mysql.com/doc/refman/5.7/en/order-by-optimization.html

Consulte o título "Influenciando a otimização ORDER BY" no artigo referenciado.

informação relacionada