Conceito e mecanismo
Uma consulta pode executar sem erro e continuar a ter significado ambíguo. Ao agrupar por fundo e selecionar um trader, pergunta se esse trader é determinado pelo grupo. ONLY_FULL_GROUP_BY deteta muitos casos sem dependência funcional; desativá-lo pode deixar o motor escolher um valor arbitrário. ORDER BY aplicado ao resultado não escolhe a linha que representa cada grupo. ANY_VALUE também não significa mais recente. Na paginação, acrescenta uma chave única para desempatar valores iguais de ordenação. Isso estabiliza a ordem para o mesmo conjunto de dados, mas não congela alterações concorrentes entre pedidos.
Aplicação guiada
Num relatório fictício, compara estimativas com linhas reais antes de propor um índice. EXPLAIN ANALYZE executa o comando suportado para recolher métricas, pelo que precisa de um ambiente e carga controlados. Um índice composto tem ordem: filtros alinhados com o prefixo esquerdo são candidatos úteis, mas o plano final depende dos dados e do custo. Using filesort indica uma fase de ordenação, não prova de escrita em disco. Mede frequência, latência, volume e impacto nas escritas. O teste de aceitação deve incluir grupos com vários elementos e empates, além de dados suficientemente representativos para avaliar o ganho.
ORDER BY created_at, id resolve empates de timestamp quando id é único; não cria uma snapshot entre páginas.
Armadilhas comuns
Sem erro como correto; ANY_VALUE como último; filesort como disco; índice composto como índices independentes.
Tópicos relacionados: Tipos e contratos dos dados · Transações InnoDB e caminhos de erro · Integração segura e identidade efetiva
Valida significado e desempenho com exemplos que distingam as alternativas.
Referência: Deterministic grouping and functional dependence · MySQL 9.7 LTS with InnoDB reference semantics