Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Relação entre custo da query e o tempo

O custo da query na tabela com índice foi ~63. Já na tabela sem índice, ~8831. O que nos faz pensar(ao menos pra mim) que a query menos custosa, vai levar 1/140 do tempo da outra; não importando que tempo seja esse. Usando a ferramenta mysqlslap, percebemos que isso se concretiza em 1/5 do tempo. Mesmo sabendo que as coisas não se resolvem assim matematicamente, queria entender o porquê de não terem ao menos uma proximidade entre o que o custo sugeriu e o tempo real. Se pudesse tecer algumas informações sobre isso, ficaria grato.

1 resposta
solução!

Olá Leonardo, tudo bem?

Peço desulpas pela demora no retorno.

O tempo gasto para um query ser executada não tem relação direta com o custo, ou seja, eles são valores diferentes, o tempo é em segundos e o custo é um número. O custo é o valor calculado para cada recurso do banco de dados utilizado na consulta, como o custo de uso e acesso a memórias, o volume de registros pesquisados e retornados, entre outros recursos utilizados para realizar uma consulta. O tempo é o valor em segundos que uma consulta leva para ser executada. Em alguns casos, mesmo o custo sendo alto, o tempo de execução pode ser bem rápido e o inverso também pode ocorrer, esses valores dependem de como a query é executada.

Para avaliar e definr qual a melhor forma de executar uma query utiliza-se o Plano de Execução, assim, é possivel verificar quais operações são realizadas no Banco de Dados para executar uma query.

Com o Plano de Execução é possível identificar se uma consulta é custosa ou se tem um bom tempo de execução, e analisar se é necessario criar um novo índice em um determinado campo, se alguma instrução da query não é necessaria, como a utilizaçao de JOIN ou agrupamentos, entre outros pontos que podem ser verificados para melhorar a perfomance.

Espero ter ajudado e bons estudos!