"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que minha consulta MySQL com ordem é tão lenta?

Por que minha consulta MySQL com ordem é tão lenta?

Postado em 2025-03-24
Navegar:144

Why is my MySQL query with ORDER BY so slow?

desaceleração das consultas com ordem por cláusula

usuários do banco de dados MySQL encontraram um problema de desempenho intrigante relacionado ao uso da cláusula por ordem por ordem. Quando adicionado a uma consulta complexa com várias junções e subconsências, o tempo de execução da consulta aumenta significativamente de milissegundos a segundos. Sem o pedido por cláusula, a consulta tem um desempenho ideal. No entanto, quando qualquer coluna é usada como critério de classificação, a consulta diminui por várias ordens de magnitude para cerca de 10 segundos. Por padrão, o MySQL tenta otimizar as consultas criando tabelas temporárias ou usando subconsignidades. Quando um pedido por cláusula é adicionado, o otimizador calcula mal o tamanho da tabela temporária necessária e aloca uma quantidade insuficiente de memória. Consequentemente, a consulta volta a um algoritmo de classificação menos eficiente, o que resulta na desaceleração observada. Isso permite que o otimizador estime corretamente o tamanho da tabela temporária, impedindo a desaceleração.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3